我有下表:

Keyword_name Conference_name
------------|-------------
value1      | conference1
value1      | conference1
value2      | conference1
value3      | conference1
value2      | conference2
value1      | conference3
.........................

现在,我想找到每个会议的关键字的最大发生。我该怎么做?
期望的结果应该如下所示:
Conference_name | Keyword_maximum_occurrence
conference1     | value1
conference2     | value2

最佳答案

试试这个:

select
    conference_name,
    keyword_name
from (
    select
        conference_name,
        keyword_name,
        rank() over (partition by conference_name order by count(*) desc) rnk
    from your_table
    group by
        conference_name,
        keyword_name
) t where rnk = 1;

它根据会议名称中相同关键字的出现次数分配排名,然后筛选以获取排名靠前的行。
演示@RexTester

关于sql - 根据SQL中的另一列查找列值的最大出现次数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41814116/

10-12 03:00