如何使用SQL每年显示“最受欢迎的名称”

时间:2019-07-10 19:47:18

标签: sql

我正在Google Cloud Platform中练习SQL,并且有一张桌子,上面有美国最受欢迎的名字。 我需要编写一个查询,该查询返回每年最受欢迎的名称。 该表有6列:ID,州,性别,年份,名称,名称出现的次数

到目前为止,我有:

SELECT DISTINCT year
FROM 'table'

但是我现在不知道接下来要做什么...

1 个答案:

答案 0 :(得分:2)

您要查找的是统计信息中的mode。一种实现方法是使用聚合和窗口功能:

select year, name
from (select year, name, count(*) as cnt,
             row_number() over (partition by year order by count(*) desc) as seqnum
     from t
     group by year, name
    ) yn
where seqnum = 1;

如果存在最频繁的联系,则上述版本将返回一个任意名称。如果您确实想要联系,请使用rank()而不是row_number()