问题描述
|
这是(奇怪的)有效的sql,但仍然只返回所有项的COUNT,而不是列中的COUNT disTINCT项。
SELECT disTINCT(COUNT(columnName)) FROM tableName;
解决方法
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),并且在对行进行计数之后才应用非重复查询。
,你需要
SELECT COUNT(DISTINCT columnName) AS Cnt
FROM tableName;
您问题中的查询得到COUNT
(即一个结果集只有一行),然后将Distinct
应用于该单行结果,这显然没有效果。
,SELECT COUNT(*) FROM (SELECT DISTINCT columnName FROM tableName);