查找员工表 db2 大型机的第 n 个最大薪水
Posted
技术标签:
【中文标题】查找员工表 db2 大型机的第 n 个最大薪水【英文标题】:Find nth max salary for a employee table db2 mainframes 【发布时间】:2018-11-15 16:13:28 【问题描述】:我找不到查询,我尝试了下面的查询,但它不起作用
SELECT DISTINCT(Salary) FROM table ORDER BY Salary DESC LIMIT n,1
如何找到第 n 个值。
例如:我有 7 条记录,我想要第四高的薪水。
EID -- ELOC --ESAL A001 TNP10 500000 A002 KAP10 700000 A003 TNP20 600000 A004 TNP10 500000 A005 KAP20 800000 A006 KAP10 900000 A007 APP10 700000
【问题讨论】:
你的意思是 ...order by salary desc fetch first n rows only
吗?或者你的意思是你只想要第n个值?
Select first row in each GROUP BY group?的可能重复
【参考方案1】:
二等工资(30),例如:
with mytab (salary) as (
select 10 from sysibm.sysdummy1
union all select 10 from sysibm.sysdummy1
union all select 20 from sysibm.sysdummy1
union all select 30 from sysibm.sysdummy1
union all select 30 from sysibm.sysdummy1
union all select 40 from sysibm.sysdummy1
)
select distinct salary
from (
select salary, dense_rank() over (order by salary desc) r_
from mytab
) where r_=2;
【讨论】:
【参考方案2】:/* 第四高的任何东西 */
with cte as (
select a.* , row_number() over (order by salary desc) rn from mytable a
) select * from cte where rn = 4
【讨论】:
以上是关于查找员工表 db2 大型机的第 n 个最大薪水的主要内容,如果未能解决你的问题,请参考以下文章
牛客网SQL-第7题-请你查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t
牛客网SQL-第7题-请你查找薪水记录超过15次的员工号emp_no以及其对应的记录次数t