oracle排名函式rank

2021-05-26 05:37:27 字數 1407 閱讀 6573

記錄乙個常見的例子供學習參考

連續排名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...