首页 文章

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

提问于
浏览
292

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

  • SELECT DISTINCT column_name FROM table_name;

  • SELECT column_name FROM table_name GROUP BY column_name;

但是如何从该查询中获取行数?是否需要子查询?

8 回答

  • 10

    column_name的唯一值的sql总和并按频率排序:

    SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
    
  • 6

    这将为您提供不同的列值和每个值的计数 . 我经常发现我想知道这两条信息 .

    select distinct columnName, count(columnName) as CountOf from tableName group by columnName
    
  • 11

    Count(distinct())是多余的

    Simply Count()为您提供该表中的所有不同值 . 它不会(尽可能多的假设)只给你表的计数[即与表中的Count(*)不同

  • 138
    select Count(distinct columnName) as columnNameCount from tableName
    
  • 9
    SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
    

    你必须计算那个不同的col,然后给它一个别名 .

  • -6

    请注意Count()忽略空值,因此如果您需要允许null作为其自己的不同值,您可以执行一些棘手的操作:

    select count(distinct my_col)
           + count(distinct Case when my_col is null then 1 else null end)
    from my_table
    /
    
  • 24
    select count(*) from 
    (
    SELECT distinct column1,column2,column3,column4 FROM abcd
    ) T
    

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

  • 531

    您可以在COUNT聚合函数中使用 DISTINCT 关键字:

    SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
    

    这将仅计算该列的不同值 .

相关问题