SQL查找列中不同值的数量
时间:2020-03-06 14:48:15 来源:igfitidea点击:
我可以通过以下方式选择列中的所有不同值:
- SELECT DISTINCT column_name FROM table_name;
- SELECT列名FROM表名GROUP BY列名;
但是,如何从该查询中获取行数?是否需要子查询?
解决方案
select Count(distinct columnName) as columnNameCount from tableName
我们可以在COUNT函数中使用DISTINCT关键字:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
这将仅计算该列的不同值。
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
我们必须计算出该单独的col,然后给它起一个别名。
请注意,Count()会忽略null值,因此,如果需要允许null作为其自己的不同值,则可以执行一些棘手的操作,例如:
select count(distinct my_col) + count(distinct Case when my_col is null then 1 else null end) from my_table /
select count(*) from ( SELECT distinct column1,column2,column3,column4 FROM abcd ) T
这将给出不同组列的计数。