一列中的COUNT个DISTINCT项

| 这是(奇怪的)有效的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);
    

要回复问题请先登录注册