Oracle-选择特定列x最高的所有行

  • 本文关键字:选择 Oracle- sql oracle mybatis
  • 更新时间 :
  • 英文 :


表中有两列:namescore

我想选择具有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

最新更新