宣言
SUM([ DISTINCT | ALL ] expr) OVER (analytic_clause)
説明
expr の合計を返します。返されるセットに行がない場合、SUM() は NULL を返します。DISTINCT キーワードを使用して、expr の異なる値の合計を求めることができます。
一致する行が見つからない場合、SUM() は NULL を返します。
例
obclient> CREATE TABLE EXPLOYEES(LAST_NAME CHAR(10), SALARY DECIMAL, JOB_ID CHAR(32));
Query OK, 0 rows affected
obclient> INSERT INTO EXPLOYEES VALUES('JIM', 2000, 'CLEANER');
Query OK, 1 row affected
obclient> INSERT INTO EXPLOYEES VALUES('MIKE', 12000, 'ENGINEERING');
Query OK, 1 row affected
obclient> INSERT INTO EXPLOYEES VALUES('LILY', 13000, 'ENGINEERING');
Query OK, 1 row affected
obclient> INSERT INTO EXPLOYEES VALUES('TOM', 11000, 'ENGINEERING');
Query OK, 1 row affected
obclient> 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