全部产品

RATIO_TO_REPORT

RATIO_TO_REPORT 函数计算一个值与一组值之和的比率。

语法

RATIO_TO_REPORT(expr) OVER ([query_partition_clause])

参数

参数

说明

expr

只能为正常数。

OVER

使用 OVER 子句定义窗口进行计算。

返回类型

返回数值型数据。

示例

根据部分展示员工产出占部门总展出的比例。建表 product,并向里面插入数据,执行以下语句:

CREATE TABLE product (name VARCHAR(8), deptno NUMBER, output NUMBER);
INSERT INTO product VALUES('Linda',100,5050);
INSERT INTO product VALUES('Tan',1001,8500);
INSERT INTO product VALUES('Tom',1001,3900);
INSERT INTO product VALUES('John',100,29500);
INSERT INTO product VALUES('Mery',1001,1500);
INSERT INTO product VALUES('Peter',100,1060);
COMMIT;

执行以下语句:

SELECT name, OUTPUT, deptno, RATIO_TO_REPORT(output) OVER (partition BY deptno) FROM product;

查询结果如下:

+-------+--------+--------+------------------------------------------------+
| NAME  | OUTPUT | DEPTNO | RATIO_TO_REPORT(OUTPUT)OVER(PARTITIONBYDEPTNO) |
+-------+--------+--------+------------------------------------------------+
| Linda |   5050 |    100 |      .1418140971637180567256388654872226902555 |
| John  |  29500 |    100 |      .8284189834316203313675933726481325470373 |
| Peter |   1060 |    100 |      .0297669194046616119067677618646447627071 |
| Tan   |   8500 |   1001 |      .6115107913669064748201438848920863309353 |
| Tom   |   3900 |   1001 |      .2805755395683453237410071942446043165468 |
| Mery  |   1500 |   1001 |       .107913669064748201438848920863309352518 |
+-------+--------+--------+------------------------------------------------+