表中有两列:name
和score
。
我想选择具有Score
的最高5个值的所有行。
| NAME | SCORE |
| -------- | -------- |
| Jake | 10 |
| Park | 10 |
| Rone | 9 |
| Tom | 8 |
| Joe | 7 |
| Clark | 7 |
| Emily | 6 |
请注意,它是而不是top 5
行。我想要具有最高5SCORE值的所有行。
这在Oracle中可能吗?
我在谷歌上搜索了一下,发现了"仅限FETCH FIRST x ROWS"的东西,但这不是我一直在寻找的。
您可以使用窗口函数:
select * from (
select * , dense_rank() over (order by score desc) rn
from table
) t where rn <=5