我是新手。我有以下员工表。
ID Name Country Salary ManagerID
我使用以下内容检索了第3个最高工资。
select name , salary From (
select name, salary from
employee sort by salary desc limit 3)
result sort by salary limit 1;
如何为每个国家/地区显示第三个最高薪水?我们可以使用OVER(PARTITION BY country
)吗?我尝试使用语言手动窗口和分析,但我发现它很难理解。请帮忙!
答案 0 :(得分:2)
你肯定在使用窗口功能的正确轨道上。 row_number()
是一个很好用的功能。
select name, salary
from (
select name
, salary
, row_number() over (partition by country order by salary desc) idx
from employee ) x
where idx = 3
按工资订购时,请确保它是数字类型,否则将无法正确排序。