本文主要是介绍(较难)SQL练习23:对所有员工的当前薪水按照salary进行按照1-N的排名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SQL练习23:对所有员工的当前薪水按照salary进行按照1-N的排名
- 题目描述
- 考察知识点
- 解题思路
题目描述
有一个薪水表 salaries
简况如下:
对所有员工的薪水按照 salary
降序进行 1-N 的排名,要求相同 salary
并列且按照 emp_no
升序排列:
考察知识点
窗口函数 DENSE_RANK()
,ORDER BY
。
解题思路
根据题目的要求,可以使用窗口函数进行排序。
SELECT emp_no, salary, DENSE_RANK() OVER(ORDER BY salary DESC)
FROM salaries
三种排序的窗口函数:
RANK()
在排序时,若有相同位次,会跳过这些位次进行排序。
例如,有3条数据排在第1位时,排序为:1,1,1,4······DENSE_RANK()
在计排序时,若存在相同位次,不会跳过之后的位次。
例如,有3条数据排在第1位时,排序为:1,1,1,2······ROW_NUMBER()
这个函数赋予唯一的连续位次。
例如,有3条数据排在第1位时,排序为:1,2,3,4······
题目来源:牛客网-SQL数据库实战题
✅ 每日打卡,❤ 点个赞再走吧!!!❤
后续会继续分享 Mysql 方面的文章,如果感兴趣的话可以点个关注不迷路哦~。
这篇关于(较难)SQL练习23:对所有员工的当前薪水按照salary进行按照1-N的排名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!