rank 函數(shù)用于對數(shù)據(jù)集中的值進行排名,返回每個值在排序后的列表中的位置。語法:rank([sort_order,] expression, partition_by_clause, order_by_clause)。用法包括:升序或降序排名、帶分區(qū)的分組排名、帶排序條件的分組排名。
rank 函數(shù)的用法
什么是 rank 函數(shù)?
rank 函數(shù)用于對數(shù)據(jù)集中的值進行排名,從高到低或從低到高,并返回每個值在排序后的列表中的位置。
語法:
RANK([sort_order,] expression, partition_by_clause, order_by_clause)
參數(shù):
- sort_order (可選):指定排序順序(升序或降序),默認為升序。
- expression:要排名的表達式。
- partition_by_clause (可選):指定對數(shù)據(jù)進行分區(qū)的列。
- order_by_clause (可選):指定排序的列。
用法:
基本用法(升序):
SELECT RANK() OVER (ORDER BY sales) FROM sales_table;
這將對 sales_table 中的 sales 列進行升序排列,并返回每個 sales 值的排名。
基本用法(降序):
SELECT RANK(DESC) OVER (ORDER BY sales) FROM sales_table;
這將對 sales_table 中的 sales 列進行降序排列,并返回每個 sales 值的排名。
帶分區(qū)的分組排名:
SELECT RANK() OVER (PARTITION BY region ORDER BY sales) FROM sales_table;
這將對 sales_table 中的數(shù)據(jù)按 region 列進行分區(qū),然后在每個分區(qū)內(nèi)對 sales 列進行升序排列。
帶排序條件的分組排名:
SELECT RANK() OVER (PARTITION BY region ORDER BY sales DESC) FROM sales_table;
這將對 sales_table 中的數(shù)據(jù)按 region 列進行分區(qū),然后在每個分區(qū)內(nèi)對 sales 列進行降序排列。