SQL用于查找列中不同值的数量

ぃ、小莉子 提交于 2020-03-15 19:04:25

我可以通过以下方式选择列中的所有不同值:

  • 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
/
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!