首页 文章

如何计算SQL中唯一的值对?

提问于
浏览
15

使用以下sql语句,我可以获得所有唯一值及其给定列的计数:

select column, count(column) as count 
         from table group by column order by count desc;

如何通过计数获得所有唯一的值对 . 例如,如果我有一个包含first_name和last_name列的表,我可能会发现如下结果:

first_name | last_name |算约翰|史密斯| 42约翰|约翰逊| 39大卫|史密斯| 37

等等...

我可以在基本SQL中执行此操作吗?我通常使用MySQL,但我认为你提出的任何解决方案都应该可以翻译成任何数据库 .

4 回答

  • 7

    你几乎把它弄错了......你只需添加一个额外的 GROUP BY 列,如下所示:

    SELECT [first_name], [last_name], COUNT(*) AS [Count] 
    FROM [Table]
    GROUP BY [first_name], [last_name]
    ORDER BY [Count] DESC;
    
  • 0

    如果你只想要计算多少个不同的对,你可以更简单地做到这一点 . 不需要 GROUP BY 条款 .

    SELECT COUNT(DISTINCT first_name, last_name) AS count_names FROM Table
    
  • 9

    在group by子句中使用多个列 .

    select first_name, last_name, count(*) as count from table group by first_name, last_name
    
  • 17
    SELECT first_name, last_name, COUNT(distinct last_name) AS c
    FROM ttable
    GROUP BY first_name, last_name
    HAVING c > 999
    ORDER BY c DESC
    

    添加distinct将在MYSQL中执行 . 谢谢

相关问题