select *
from (select type,
variety,
price,
rank() over ([partition by something]
order by price) rnk
from fruits) rank_subquery
where rnk <= 3
如果您省略,则将[partition by something]
获得总体排名前三的行。如果您希望每个都排在前三位type
,则可以使用partition by type
该rank()
函数。
根据您想要处理领带的方式,可能要使用dense_rank()
或row_number()
而不是rank()
。如果两行使用并列rank
,则下一行将具有rnk
3的值,而下一行将具有rnk
2的值dense_rank
。在这两种情况下,两个绑定行的arnk
均为1。row_number
任意将两个绑定行a的a设为rnk
1,将另一个arnk
设为2。