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

这将给出不同组列的计数。