我可以通过以下方式选择列中的所有不同值:
-
SELECT DISTINCT column_name FROM table_name;
-
SELECT column_name FROM table_name GROUP BY column_name;
但是如何从该查询中获取行数呢? 是否需要子查询?
#1楼
这将为您提供不同的列值和每个值的计数。 我经常发现我想知道这两条信息。
select distinct columnName, count(columnName) as CountOf from tableName group by columnName
#2楼
select Count(distinct columnName) as columnNameCount from tableName
#3楼
您可以在COUNT
聚合函数中使用DISTINCT
关键字:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
这将仅计算该列的不同值。
#4楼
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
你必须计算那个不同的col,然后给它一个别名。
#5楼
请注意Count()忽略空值,因此如果您需要允许null作为其自己的不同值,您可以执行一些棘手的操作:
select count(distinct my_col)
+ count(distinct Case when my_col is null then 1 else null end)
from my_table
/
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3195382