|
スポンサード リンク
クロス集計するには、GROUP BY句にCUBE関数を使用する
GROUP BY CUBE(集計項目1,
[集計項目2,・・・]) |
集計項目でクロス集計する |
サンプル表「emp」データ
|
SQL> select * from emp;
EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- --- --- ---------- ---------- ----------
E01 D01 J01 名字1 名前1 100
E02 D01 J01 名前2 名前2 250
E03 D02 J02 名前3 名前3 200
E04 D02 J03 名前4 名前4 220
E05 D02 J03 名前5 名前5 130
E06 D03 J03 名前6 名前6 150 |
例1) 列「dept_id」と「job_id」別に列「salary」をクロス集計します。
|
SQL> select
2 dept_id,job_id,sum(salary)
3 from emp
4 group by cube(dept_id,job_id);
DEP JOB SUM(SALARY)
--- --- -----------
1030
J01 350
J02 200
J03 480
D01 350
D01 J01 350
D02 530
D02 J02 200
D02 J03 330
D03 150
D03 J03 150 |
上記結果を表にすると以下のようになります
|
|
J01 |
J02 |
J03 |
|
D01 |
350 |
|
|
350 |
D02 |
|
200 |
330 |
530 |
D03 |
|
|
150 |
150 |
|
350 |
200 |
480 |
|
|
スポンサード リンク
|