DENSE_RANK函数
生活随笔
收集整理的這篇文章主要介紹了
DENSE_RANK函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL語句之DENSE_RANK函數:
DENSE_RANK()是一個窗口函數,它為分區或結果集中的每一行分配排名,而排名值沒有間隙。
DENSE_RANK()。如果使用 DENSE_RANK() 進行排名會得到:1,1,2,3,4。
RANK()。如果使用 RANK() 進行排名會得到:1,1,3,4,5。
ROW_NUMBER()。如果使用 ROW_NUMBER() 進行排名會得到:1,2,3,4,5。
實戰:leetCode 185題,
部門工資前三高所有員工,包含部門中工資相同的員工,
select B.name AS Department,A.Employee,A.Salary from (select DepartmentId ,name as employee,salary,dense_rank() over (partition by departmentid order by salary desc) as rkfrom employee ) A left join department B on A.departmentid = B.id where A.rk <= 3其中,
PARTITION BY子句將FROM子句生成的結果集劃分為分區。
ORDER BY? 子句指定DENSE_RANK()函數操作的每個分區中的行順序。
DESC 是降序排列,ASC?是升序排列。
DENSE_RANK()函數應用于每個分區。
LEFT JOIN 是左連接查詢,從左表A那里返回所有的行,即使在右表B中沒有匹配的行。
?
參考鏈接:MySQL DENSE_RANK() 函數 | 新手教程 (begtut.com)
總結
以上是生活随笔為你收集整理的DENSE_RANK函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PUN ☀️六、机器人基础设置:运动、相
- 下一篇: CE游戏修改器制作游戏修改器傻瓜教程