SQL(结构化查询语言)提供了一种通过 PERCENT_RANK()
函数按百分比对数据进行排序或输出的 。该函数计算每个行的累积百分比,将结果表示为介于 0 到 1 之间的值,其中 0 表示最低值,1 表示最高值。
语法
PERCENT_RANK()
函数的语法如下:
PERCENT_RANK() OVER (PARTITION BY partition_expression ORDER BY order_expression)
其中:
* partition_expression
可选,用于将数据分成不同的组或分区
* order_expression
指定按其排序数据的表达式
示例
假设我们有以下数据表:
| id | name | score |
| --- | ---- | ----- |
| 1 | John | 85 |
| 2 | Mary | 90 |
| 3 | Bob | 75 |
| 4 | Alice | 80 |
要按得分按百分比对数据进行排序,我们可以使用以下查询:
SELECT id, name, score, PERCENT_RANK() OVER (ORDER BY score) AS rank_percent
FROM table_name;
结果如下:
| id | name | score | rank_percent |
| --- | ---- | ----- | ----------- |
| 2 | Mary | 90 | 1.0000 |
| 1 | John | 85 | 0.7500 |
| 4 | Alice | 80 | 0.5000 |
| 3 | Bob | 75 | 0.2500 |
如你所见,每行的 rank_percent
列包含相应行得分的百分比排名。
用处
PERCENT_RANK()
函数非常有用,可用于:
* 确定数据值相对于其他值的位置
* 标识数据中的异常值
* 对数据进行基准测试和比较