記錄乙個常見的例子供學習參考
連續排名dense_rank();不連續排名rank()
分組partition;不分組
原始表:t_score
姓名 學科 成績
張三 english 80
李四 english 70
王五 english 90
趙六 english 80
張三 chinese 90
李四 chinese 70
王五 chinese 85
趙六 chinese 90
查詢各學生english的排名情況
結果表:
姓名 學科 成績 排名
王五 english 90 1
張三 english 80 2
趙六 english 80 2
李四 english 70 4
sql:
select t.name,t.xueke,t.score,rank() over(order by score desc) 排名 from t_socre t where xueke='english';
查詢各學生各學科的排名情況:
結果表:
姓名 學科 成績 排名
王五 english 90 1
張三 english 80 2
趙六 english 80 2
李四 english 70 4
張三 chinese 90 1
趙六 chinese 90 1
王五 chinese 85 3
李四 chinese 70 4
sql:
select t.name,t.xueke,t.score,rank() over(partition by xueke order by score desc) 排名 from t_score t;
查詢各科前兩名:
select t.name,t.xueke,t.score,rank() over(partition by xueke order by score desc) 排名 from t_score t where t.排名<=2;
MySQL實現Rank高階排名函式
mysql中沒有rank排名函式,當我們需要查詢排名時,只能使用mysql資料庫中的基本查詢語句來查詢普通排名。儘管如此,可不要小瞧基礎而簡單的查詢語句,我們可以利用其來達到rank函式一樣的高階排名效果。在這裡我用乙個簡單例子來實現排名的查詢 首先我們先建立乙個我們需要進行高階排名查詢的playe...
MySQL中實現Rank排名高階函式
先舉例乙個 select name,time,currank currank 1 as rank from 表名,select currank 0 qorder by time1.要在mysql中宣告乙個變數,你必須在變數名之前使用 符號。from子句中的 currank 0 部分允許我們進行變數初...
在MySQL中實現Rank高階排名函式
mysql中沒有rank排名函式,當我們需要查詢排名時,只能使用mysql資料庫中的基本查詢語句來查詢普通排名。儘管如此,可不要小瞧基礎而簡單的查詢語句,我們可以利用其來達到rank函式一樣的高階排名效果。在這裡我用乙個簡單例子來實現排名的查詢 首先我們先建立乙個我們需要進行高階排名查詢的playe...