SQL四大排序函數


1、ROW_NUMBER()函數作用就是將SELECT查詢到的數據進行排序,每一條數據加一個序號

SELECT 
ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS [RANK],*
FROM Scores;

SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY SCORE DESC) AS [RANK],*
FROM Scores
) t WHERE t.RANK=2;

2、RANK()函數,顧名思義排名函數,可以對某一個字段進行排名

SELECT RANK() OVER (ORDER BY SCORE DESC) AS [RANK],*
FROM Scores;

3、DENSE_RANK()函數也是排名函數,和RANK()功能相似,也是對字段進行排名

SELECT 
DENSE_RANK() OVER (ORDER BY SCORE DESC) AS [RANK],*
FROM Scores;

 

4、NTILE()函數是將有序分區中的行分發到指定數目的組中,各個組有編號,編號從1開始,就像我們說的'分區'一樣 ,分為幾個區,一個區會有多少個

SELECT NTILE(1) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;
SELECT NTILE(2) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;
SELECT NTILE(3) OVER (ORDER BY SCORE DESC) AS [RANK],* FROM Scores;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM