如何从下表中选择前 3 个计数。我知道可以通过使用ORDER BY
and的组合来完成ROWNUM
,但我希望它以这样的方式显示:
如果具有计数的 ID 相同,则所有具有相同计数的 ID 应一起显示
ID COUNT
----------- -----------------
a 4
b 2
c 3
d 2
e 1
我正在使用 Sql plus
如何从下表中选择前 3 个计数。我知道可以通过使用ORDER BY
and的组合来完成ROWNUM
,但我希望它以这样的方式显示:
如果具有计数的 ID 相同,则所有具有相同计数的 ID 应一起显示
ID COUNT
----------- -----------------
a 4
b 2
c 3
d 2
e 1
我正在使用 Sql plus
最简单的方法是使用dense_rank()
分析函数:
select id, count
from (select t.*,
dense_rank() over (order by count desc) as seqnum
from t
) t
where seqnum <= 3
这是一个通用查询
SELECT
*
FROM
mytable a
WHERE
3 > ( SELECT count(1) FROM mytable b where b.count > a.count)