列中的COUNT个DISTINCT项

时间:2011-04-14 18:08:58

标签: sql count distinct

这是可行的SQL(奇怪),但仍然只返回所有项目的COUNT,而不是列中DISTINCT项目的COUNT。

SELECT DISTINCT(COUNT(columnName)) FROM tableName;

3 个答案:

答案 0 :(得分:14)

SELECT COUNT(*) FROM tableName

计算表格中的所有行

SELECT COUNT(columnName) FROM tableName

计算表中columnName不为null的所有行,并

SELECT (DISTINCT COUNT(columnName)) FROM tableName

计算表中所有行,其中columnName既不是null又是不同的(即没有两个相同)

SELECT DISTINCT(COUNT(columnName)) FROM tableName

是第二个查询(返回,比如说42),并且在计算行数后会应用distinct。

答案 1 :(得分:12)

你需要

SELECT COUNT(DISTINCT columnName) AS Cnt
FROM tableName;

您的问题中的查询获得COUNT(即一行的结果集),然后将Distinct应用于显然无效的单行结果。

答案 2 :(得分:3)

SELECT COUNT(*) FROM (SELECT DISTINCT columnName FROM tableName);