一天一道Sql题(day04)

185. 部门工资前三高的所有员工 - 力扣(LeetCode)

思路:本题主要考察开窗函数的使用(官方答案未使用开窗,但是我觉得答案可能是在mysql8.0之前写的,当时还没有开窗函数)

先对Employee表增加一列不同部门下薪资的排名(pm),在关联Department查询出结果需要的字段即可。在这里排名时要使用dense_rank() 函数。

排名函数有三个:row_number()、rank()、dense_rank()

row_number(): 严格按照1234排序,相等的数据排名也是不同的

rank(): 1 2 2 4 5 6 6 8

dense_rank():1 2 2 3 4 5 5 6

sql:

复制代码
with e as (
    select name,salary,departmentId
    ,dense_rank() over(partition by departmentId order by salary desc) pm
    from Employee
)
select d.name as Department
,e.name as Employee
,e.salary 
from e,department d 
where e.departmentId=d.id and pm <=3

dense_rank() over(partition by departmentId order by salary desc) pm

会开窗的小伙伴都能看懂,不会的小伙伴建议去学一下开窗~

相关推荐
2601_956121975 分钟前
map_计蒜客T1271 完美K倍子数组
c++·算法
编程圈子27 分钟前
电机驱动开发学习19. 霍尔 BLDC 三段式 FOC 启动算法
驱动开发·学习·算法
Hello_Damon_Nikola32 分钟前
伺服电机堵转检测算法详解
单片机·嵌入式硬件·算法
罗小罗同学1 小时前
安德森癌症中心发表SCOPE IO模型,实现了对罕见肿瘤帕博利珠单抗疗效的精准预测,在患者早期即可预判药效
人工智能·算法·医学图像处理·医学ai
变量未定义~1 小时前
Tarjan算法-强连通分量、路径、出差
算法
geovindu1 小时前
CSharp: Iterative Algorithms
开发语言·后端·算法·c#·.net·迭代算法
道影子2 小时前
《黄帝内经》021章|津凝精晶 沉降为患
人工智能·深度学习·神经网络·算法·机器学习
道影子2 小时前
《黄帝内经》022章|调和双旋 伏风自消
人工智能·深度学习·神经网络·算法·机器学习
吞下星星的少年·-·3 小时前
牛客技能树:一道GCD问题(排序,数论)
算法
m沐沐3 小时前
【计算机视觉】人脸识别三大经典算法:LBPH、Eigenfaces、FisherFaces 原理与实战
图像处理·人工智能·深度学习·opencv·算法·机器学习·计算机视觉