dense_rank()的文法
DENSE_RANK() OVER (
PARTITION BY <expression>[{,<expression>...}]
ORDER BY <expression> [ASC|DESC], [{,<expression>...}]
)
在這個文法中:
首先,PARTITION BY子句将FROM子句生成的結果集劃分為分區。DENSE_RANK()函數應用于每個分區。
其次,ORDER BY 子句指定DENSE_RANK()函數操作的每個分區中的行順序。
如果分區具有兩個或更多具有相同排名值的行,則将為這些行中的每一行配置設定相同的排名。
與RANK()函數不同,DENSE_RANK()函數始終傳回連續的排名值。
測試看:
https://www.begtut.com/mysql/mysql-dense_rank-function.html
rank()函數
RANK() OVER (
PARTITION BY <expression>[{,<expression>...}]
ORDER BY <expression> [ASC|DESC], [{,<expression>...}]
)
他們之間的差別
- 一個是連續的,一個不是連續的;
練習鞏固
https://leetcode-cn.com/problems/rank-scores/