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

Jay*_*ren 18 sql count

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

select column, count(column) as count 
         from table group by column order by count desc;
Run Code Online (Sandbox Code Playgroud)

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

first_name | last_name | 计数

约翰| 史密斯| 42

约翰| 约翰逊| 39

大卫| 史密斯| 37

等等...

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

Rya*_*yan 19

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

SELECT [first_name], [last_name], COUNT(*) AS [Count] 
FROM [Table]
GROUP BY [first_name], [last_name]
ORDER BY [Count] DESC;
Run Code Online (Sandbox Code Playgroud)


ada*_*dam 14

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

SELECT COUNT(DISTINCT first_name, last_name) AS count_names FROM Table
Run Code Online (Sandbox Code Playgroud)

  • 这至少在 PostgreSQL 中是无效的。 (5认同)

tsc*_*ble 7

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

select first_name, last_name, count(*) as count from table group by first_name, last_name
Run Code Online (Sandbox Code Playgroud)