DISTINCT适用于大桌子



我有一个很大的表,在一列中有一些字符串,如TypeATypeB等。我想使用该列使用CASE运算符进行查询

CASE WHEN col1 = 'TypeA' Then '25'
WHEN col1 = 'TypeB' Then '28'
...
WHEN col1 = '????' Then '15'
END

但我不知道该列有多少个唯一值,它们是什么(它们是最多3个单词的单词/句子(。我知道我可以通过找到那些独特的价值

SELECT DISTINCT col1 FROM table1

SELECT col1 FROM table1 GROUP BY col1

但由于表的大小,它正在无休止地执行

我能以有效的方式做吗?我想从1列中找到所有唯一的值

似乎应该更好地创建一个具有唯一值的表。然后您可以加入该表,并且值域是开放的。然后,您可以将该字段替换为对值表的引用。

由于原始表上的col1DISTINCT上似乎不存在索引,因此速度较慢。在值表的col1上有一个索引/主键。

相关内容

最新更新