指定した単位でSUM値を取得するには、SUM~OVER句を使用します。
サンプル
以下のテーブルを使用します。
name | bu | ka | score |
---|---|---|---|
佐藤 | 営業部 | 1課 | 80 |
鈴木 | 営業部 | 1課 | 50 |
高橋 | 営業部 | 2課 | 90 |
田中 | 経理部 | 1課 | 70 |
伊藤 | 経理部 | 1課 | 40 |
例)bu単位でscoreの合計値を取得する
1 2 3 4 5 6 7 |
SELECT name ,bu ,score ,SUM(score) OVER(PARTITION BY bu) AS sumscore FROM T_SCORE; |
- SQL*Plus
- name bu score sumscore ----- -------- ------ ---------- 佐藤 営業部 80 220 鈴木 営業部 50 220 高橋 営業部 90 220 田中 経理部 70 110 伊藤 経理部 40 110
例)bu, ka単位でscoreの合計値を取得する
1 2 3 4 5 6 7 8 |
SELECT name ,bu ,ka ,score ,SUM(score) OVER(PARTITION BY bu, ka) AS sumscore FROM T_SCORE; |
- SQL*Plus
- name bu ka score sumscore ----- -------- ----- ------ ---------- 佐藤 営業部 1課 80 130 鈴木 営業部 1課 50 130 高橋 営業部 2課 90 90 田中 経理部 1課 70 110 伊藤 経理部 1課 40 110
解説
- SUMの引数に合計値を取得したい対象列名を指定します。
- OVERの引数にSUM値を取得したい単位を指定します。
関連項目
- [ORACLE関数] 指定した単位でMIN値を取得する(MIN~OVER)
- [ORACLE関数] 指定した単位でMAX値を取得する(MAX~OVER)
- [ORACLE関数] 指定した単位毎の件数を取得する(COUNT~OVER)
- [ORACLE関数] 指定した単位で平均値を取得する(AVG~OVER)