我尝试使用等级函数:rank () over (partition by table_1.name order by profit desc) as ranks
,但是没有用。由于某种原因,它生成了重复的值。
有人可以帮我吗?预先感谢!
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9CMDBsWC5qcGcifQ==” alt =“屏幕截图1”>
select *
from (
select t.*, row_number() over(partition by country order by profit desc) rn
from mytable t
) t
where rn <= 3
如果您想允许联系(每个国家可能给您3个以上的客户),则可以使用rank()
代替row_number()
(其余查询保持不变)。