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