【问题标题】:Select value with maximum number of entries - Oracle Database选择具有最大条目数的值 - Oracle 数据库
【发布时间】:2016-09-28 07:00:09
【问题描述】:
这就是我所拥有的:
一个表 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。如何解决?
【问题讨论】:
标签:
sql
oracle
max
greatest-n-per-group
【解决方案1】:
你可以试试这个:
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;
【解决方案2】:
试试这个。
SELECT assignee
FROM
(
SELECT TOP 1 assignee, count(*) num_assignee
FROM patent
GROUP BY assignee
ORDER BY num_assignee DESC
) Source