我已经通过执行以下查询获得了它:
SELECT *
FROM
(
SELECT emp_id,salary,row_number() over(order by salary desc) AS rk
FROM test_qaium
)
where rk=2;但是我的一位朋友要求我从employees表中找到第二个MAX薪资必须在oracle中使用"over(partition by )“。谁来帮帮我。并澄清了oracle中"Partition by“的概念。
发布于 2017-10-23 09:00:15
如果多名员工的薪资相同,则查询将不起作用.
尝试:
SELECT emp_id,
salary,
dense_rank() over(order by salary desc) AS rk
FROM test_qaiumpartition by子句就像group by,这里没有什么需要分组的。
https://stackoverflow.com/questions/46885356
复制相似问题