codecamp

OceanBase 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 |
+-------+--------+--------+------------------------------------------------+


OceanBase PERCENT_RANK
OceanBase ROW_NUMBER
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

OceanBase 控制台指南

OceanBase ODC 使用指南

OceanBase Web 版 ODC

OceanBase 客户端版 ODC

OceanBase Connector/J 开发者指南

OceanBase 什么是OceanBase Connector/J

OceanBase SQL 参考(MySQL 模式)

OceanBase SQL 参考(Oracle 模式)

OceanBase 基本元素

OceanBase 数据库对象

OceanBase 函数

OceanBase 单行函数

OceanBase 返回数字的字符串函数

OceanBase 通用比较函数

OceanBase 编码解码函数

OceanBase SQL 调优指南

OceanBase 相关协议

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }