跳到主要内容

SUM

声明

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

说明

返回 expr 的总数。若返回集合中无任何行,则 SUM() 返回 NULLDISTINCT 关键字可用于求得 expr 不同值的总和。

若找不到匹配的行,则 SUM() 返回 NULL

示例

CREATE TABLE EXPLOYEES(LAST_NAME CHAR(10), SALARY DECIMAL, JOB_ID CHAR(32));
Query OK, 0 rows affected (0.056 sec)

INSERT INTO EXPLOYEES VALUES('JIM', 2000, 'CLEANER');
Query OK, 1 row affected (0.001 sec)

INSERT INTO EXPLOYEES VALUES('MIKE', 12000, 'ENGINEERING');
Query OK, 1 row affected (0.001 sec)

INSERT INTO EXPLOYEES VALUES('LILY', 13000, 'ENGINEERING');
Query OK, 1 row affected (0.001 sec)

INSERT INTO EXPLOYEES VALUES('TOM', 11000, 'ENGINEERING');
Query OK, 1 row affected (0.001 sec)

SELECT LAST_NAME, SUM(SALARY) OVER (PARTITION BY JOB_ID) TOTAL_S FROM EXPLOYEES;
+-----------+---------+
| LAST_NAME | TOTAL_S |
+-----------+---------+
| JIM | 2000 |
| MIKE | 36000 |
| LILY | 36000 |
| TOM | 36000 |
+-----------+---------+
4 rows in set (0.003 sec)