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