以下是奇怪但有效的SQL语句,但仍然只返回所有项目的数量,而不是列中不同项目的数量。
SELECT DISTINCT(COUNT(columnName)) FROM tableName;
SELECT COUNT(DISTINCT columnName) AS Cnt
FROM tableName;
在您的问题中查询获得一个COUNT
(即一个只有一行结果集)然后对该单行结果应用Distinct
,显然不会产生任何效果。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是在行数计算之后被应用的。
SELECT COUNT(*) FROM (SELECT DISTINCT columnName FROM tableName);