MySQL 排名函数.md
生活随笔
收集整理的這篇文章主要介紹了
MySQL 排名函数.md
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述
MySQL 自帶的排名的函數,主要有:
- row_number()
- rank()
- dense_rank()
- ntile()
測試數據
測試數據如下所示:
row_number() 函數
用法如下:
SELECT row_number() OVER (ORDER BY Salary DESC) row_num,Salary FROMEmployee查詢結果如下:
注意,row_number() 函數在 Salary 相等的情況下,行號是遞增的
rank() 函數
SELECT rank() OVER (ORDER BY Salary DESC) row_num,Salary FROMEmployee查詢結果如下所示:
可以發現
- 在 Salary 相等的情況下,行號是相等的。
- Salary 相等的一批數據的下一個 Salary 的行號不是連續的,比如說有兩個 Salary 的行號都是 2,那么下個 Salary 的行號將會是 4。
dense_rank() 函數
用法如下:
SELECT dense_rank() OVER (ORDER BY Salary DESC) row_num,Salary FROMEmployee查詢結果如下所示:
注意,與 rank() 的區別為,Salary 相等的一批數據的下一個 Salary 的行號是連續的,比如說有兩個 Salary 的行號都是 2,那么下個 Salary 的行號將會是 3。
ntile() 函數
用法如下:
SELECT ntile(3) OVER (ORDER BY Salary DESC) row_num,Salary FROMEmployee查詢結果如下所示:
ntile(int n) 函數,是把查詢結果進行分組的函數,將查詢結果分為 n 組
總結
以上是生活随笔為你收集整理的MySQL 排名函数.md的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux应用日志类型,linux日志分
- 下一篇: linux 网卡配置不一致,linux环