|
スポンサード リンク
グループ単位に、レコード件数を取得するには、COUNT関数を使用する。
分析関数のCOUNTは、ウィンドウ(window)を操作してレコード件数を取得します。
COUNT(列名 ) |
NULL項目以外のレコード件数をカウントします |
COUNT(*) |
全てのレコード件数をカウントします |
OVER(
[ PRTITION BY 項目1,
[項目2,・・] ]
ORDER BY 項目1,
[項目2,・・] )
|
COUNT関数と一緒に使用します
PRTITION BY句には、グループ化対象項目を指定する
ORDERY BY句には、ソート対象の項目を指定する |
サンプル表「emp01」データ
|
SQL> select * from emp01;
EMP_ID DEPT_ID EMP_NAME YEARS SALARY
------ ------ ---------- ---------- ----------
E01 D01 なまえ1 3 150
E02 D02 なまえ2 7 200
E03 D03 なまえ3 7 300
E04 D02 なまえ4 7 400
E05 D03 なまえ5 3 500
E06 D02 なまえ6 3 600 |
例1) 列「dept_id」単位にレコード件数を取得します。
|
SQL> select
2 emp_id,dept_id,
3 count( * ) over ( partition by dept_id ) as count
4 from emp01;
EMP_ID DEPT_ID COUNT
----- ----- ----------
E01 D01 1
E02 D02 2
E04 D02 2
E05 D03 3
E06 D03 3
E03 D03 3 |
例2) 列「dept_id」、「years」単位にレコード件数を取得します。
|
SQL> select
2 emp_id,dept_id,years,
3 count(*) over ( partition by dept_id, years ) as count
4 from emp01;
EMP_ID DEPT_ID YEARS COUNT
----- ----- ------ ----------
E01 D01 3 1
E06 D02 3 1
E02 D02 7 2
E04 D02 7 2
E05 D03 3 1
E03 D03 7 1 |
スポンサード リンク
|