ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
小計を計算する( ROLLUP )
スポンサード リンク

小計を計算するには、GROUP BY句にROLLUPを使用する。

GROUP BY ROLLUP( 小計項目1,
               [小計項目2・・・] )
集計項目で小計を計算する


サンプル表「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」別に、列「salary」の集計を取得し、最後に合計を算出する。

SQL> select
  2  dept_id,sum( salary )
  3 from emp01
  4 group by rollup( dept_id, years );

DEPT_ID SUM(SALARY)
------  -----------
D01    150
D01    150
D02    600
D02    600
D02    1200
D03    500
D03    300
D03    800
      2150 −−−− 合計




例2) 列「dept_id」、「years」別に、列「salary」の集計を取得し、列「dept_id」別に小計を算出する。
    最後に合計を算出する。

SQL> select
  2  dept_id,years,sum( salary )
  3 from emp01
  4 group by rollup( dept_id, years );

DEPT_ID YEARS    SUM(SALARY)
------  ---------- -----------
D01    3        150
D01            150 −−−− 小計
D02    3        600
D02    7        600
D02            1200 −−−− 小計
D03    3        500
D03    7        300
D03            800 −−−− 小計
              2150 −−−− 合計



スポンサード リンク


レコード件数を取得する( COUNT )
最大値を取得する( MAX )
平均値を取得する( AVG )
最小値を取得する( MIN )
グループ単位に集計する( SUM、GROUP BY )
グループ単位に集計結果の値から指定条件でレコードを抽出する( HAVING )
ランキング(仮説ランク)を取得する( RANK、DENSE_RANK )
パーセントランク(仮説ランク)を取得する( PERCENT_RANK )
ソートしたレコードの先頭行に集計関数を使用する( KEEP、FIRST )
ソートしたレコードの最終行に集計関数を使用する( KEEP、LAST )
小計を計算する( ROLLUP )
クロス集計する( CUBE )
小計行とグループ化された集計行を区別する( GROUPING、GROUPING_ID )
標準偏差を取得する( STDDEV )
累積標準偏差を取得する( STDDEV_SAMP )
母集団標準偏差を取得する( STDDEV_POP )
分散を取得する( VARIANCE )
累積分散を取得する( VAR_SAMP )
母集団分散を取得する( VAR_POP )
中央値を取得する( MEDIAN )
相関係数を取得する( CORR )

SQL(DML) へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ