选择具有最大条目数的值 - Oracle数据库

时间:2016-09-28 07:00:09

标签: sql oracle max greatest-n-per-group

这就是我所拥有的:

包含PATENT列的表ASSIGNEE。我想找到表中包含最大条目数的ASSIGNEE

这就是我想要做的事情:

SELECT ASSIGNEE
FROM (
    SELECT ASSIGNEE, count(*) num_assignee
    FROM PATENT
    GROUP BY ASSIGNEE
    ORDER BY num_assignee DESC
)
WHERE ROWNUM <= 1

这只适用于一个最大值,但是,在平局的情况下,另一个ASSIGNEE未显示。如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

你可以试试这个:

SELECT assignee
FROM (
    SELECT assignee, 
           count(*) num_assignee,
           MAX(count(*)) OVER () max_num_assignee
    FROM patent
    GROUP BY assignee
    )
WHERE num_assignee = max_num_assignee;

答案 1 :(得分:-2)

试试这个。

SELECT assignee 
FROM
(
    SELECT TOP 1 assignee, count(*) num_assignee
    FROM patent
    GROUP BY assignee
    ORDER BY num_assignee DESC
) Source