全部产品
云市场

PERCENT_RANK

更新时间:2020-03-26 17:34:50

PERCENT_RANK 函数类似于 CUME_DIST(累积分布)函数。 它的返回值范围为 0~1。任何集合中的第一行的 PERCENT_RANK 函数为 0,返回值为 NUMBER

语法

  1. PERCENT_RANK( ) OVER ([query_partition_clause] order_by_clause)

作为分析函数使用,您需要使用窗口函数的完整语法,它对一组行的集合进行计算并返回多个值,具体信息请查阅文档 OVER (analytic_clause)

参数

参数 说明
OVER 使用 OVER 子句定义窗口进行计算。

返回类型

NUMBER 数据类型。

示例

根据成绩将同学分成四个等级,为学生评奖。建表 course_rank,并向里面插入数据,执行以下语句:

  1. CREATE TABLE course_rank
  2. (
  3. name VARCHAR(8),
  4. id NUMBER
  5. );
  6. INSERT INTO course_rank VALUES('Linda',1);
  7. INSERT INTO course_rank VALUES('Tan',2);
  8. INSERT INTO course_rank VALUES('Tom',3);
  9. INSERT INTO course_rank VALUES('John',4);
  10. INSERT INTO course_rank VALUES('Mery',5);
  11. COMMIT;

执行以下语句:

  1. SELECT name, id, percent_rank() OVER (ORDER BY id) AS pr1 FROM course_rank;

查询结果如下:

  1. +-------+------+------+
  2. | NAME | ID | PR1 |
  3. +-------+------+------+
  4. | Linda | 1 | 0 |
  5. | Tan | 2 | .25 |
  6. | Tom | 3 | .5 |
  7. | John | 4 | .75 |
  8. | Mery | 5 | 1 |
  9. +-------+------+------+