创新互联OceanBase教程:OceanBaseSUM

SUM​ 函数返回参数中指定列的和。此函数将可以隐式转换为数值数据类型的任何数值数据类型或任何非数值数据类型作为参数。 函数返回与参数的数值数据类型相同的数据类型。

成都网站建设、网站制作的开发,更需要了解用户,从用户角度来建设网站,获得较好的用户体验。创新互联多年互联网经验,见的多,沟通容易、能帮助客户提出的运营建议。作为成都一家网络公司,打造的就是网站建设产品直销的概念。选择创新互联,不只是建站,我们把建站作为产品,不断的更新、完善,让每位来访用户感受到浩方产品的价值服务。

语法


SUM([ DISTINCT | UNQIUE | ALL ] expr) [ OVER (analytic_clause) ]

作为分析函数使用时,您需要使用窗口函数的完整语法,它对一组行的集合进行计算并返回多个值。作为聚合函数使用时,该函数对一组行的集合进行聚合计算,结果只能返回一个值,此时不需要加 ​OVER​ 关键字。

参数

参数

说明

DISTINCT

去除重复行,且忽略值为 NULL 的行。

UNQIUE

去除重复行,且忽略值为 NULL 的行。

ALL

返回所有值,包含重复行,且忽略值为 NULL 的行。

expr

可为数值、字符、日期型或其它类型的数据列或表达式。

OVER

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

注意 

如果您指定了 ​
DISTINCT​ 或 ​
UNIQUE​ 关键字,则 ​
analytic_clause​ 中不允许出现 ​
order_by_clause​ 和 ​
windowing_clause​。

返回类型

返回与 ​expr​ 相同数据类型的值。

示例

分析函数示例

创建表 employees,并向里面插入数据,执行以下语句:


CREATE TABLE employees(manager_id INT,last_name varchar(50),hiredate varchar(50),SALARY INT);
INSERT INTO employees VALUES(300, 'Wei',  '2019-09-11',23600);     
INSERT INTO employees VALUES(200, 'Red', '2019-11-05', 23800);
INSERT INTO employees VALUES(100, 'Part',  '2018-10-01',24000);     
INSERT INTO employees VALUES(200, 'Ross',  '2019-06-11',23500);     
INSERT INTO employees VALUES(200, 'Bell', '2019-05-25', 23000);
INSERT INTO employees VALUES(200, 'Part',  '2018-06-11',24500);    
INSERT INTO employees VALUES(100, 'De Haan', '2018-05-01',11000);      
INSERT INTO employees VALUES(100, 'Errazuriz', '2017-07-21', 1400);
INSERT INTO employees VALUES(100, 'Hartstein', '2019-05-01',14000);     
COMMIT;

计算工资总额,执行以下语句:


SELECT manager_id, last_name, salary, SUM(salary) OVER (PARTITION BY manager_id 
ORDER BY salary RANGE UNBOUNDED PRECEDING) l_csum
FROM employees ORDER BY manager_id, last_name, salary, l_csum;

查询结果如下:


+------------+-----------+--------+--------+
| MANAGER_ID | LAST_NAME | SALARY | L_CSUM |
+------------+-----------+--------+--------+
|        100 | De Haan   |  11000 |  12400 |
|        100 | Errazuriz |   1400 |   1400 |
|        100 | Hartstein |  14000 |  26400 |
|        100 | Part      |  24000 |  50400 |
|        200 | Bell      |  23000 |  23000 |
|        200 | Part      |  24500 |  94800 |
|        200 | Red       |  23800 |  70300 |
|        200 | Ross      |  23500 |  46500 |
|        300 | Wei       |  23600 |  23600 |
+------------+-----------+--------+--------+

聚合函数示例

计算工资总额,执行以下语句:


SELECT SUM(salary) FROM employees;

查询结果如下:


+-------------+
| SUM(SALARY) |
+-------------+
|      168800 |
+-------------+

网页名称:创新互联OceanBase教程:OceanBaseSUM
链接地址:http://www.shufengxianlan.com/qtweb/news24/25874.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联