答案 0 :(得分:0)
您可以使用DENSE_RANK()
。例如:
select
id, name, quantity
from (
select
id, name, quantity,
dense_rank() over(order by quantity desc) as rk
from t
) x
where rk <= 2
DENSE_RANK()
根据您选择的顺序为每一行计算一个数字。相同的值获得相同的数字,并且不会跳过任何数字。参见SQL Fiddle。
答案 1 :(得分:0)
您可以在查询中使用TOP / LIMIT函数。这样您就可以选择特定数量的行。
使用5作为数字,您可以从以下位置获得所需的结果:
从表名中选择列名,条件为 number ;
或
选择顶部(数字)/(百分比)列名从表名在条件的地方;