一个列中不重复项的计数

5

以下是奇怪但有效的SQL语句,但仍然只返回所有项目的数量,而不是列中不同项目的数量。

SELECT DISTINCT(COUNT(columnName)) FROM tableName;
3个回答

15
你需要。
SELECT COUNT(DISTINCT columnName) AS Cnt
FROM tableName;
在您的问题中查询获得一个COUNT(即一个只有一行结果集)然后对该单行结果应用Distinct,显然不会产生任何效果。

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是在行数计算之后被应用的。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接