SQLデータベースでのROLLUP関数
主に総計や小計など集計用の便利な関数です。
※ただ、使い方、動きをしっかり把握していないと集計対象が複雑になる場合があります。
ここはざっくり「この関数の存在がある」という旨を公開しますので、参考にしてください。
用途:
指定されている複数のカラムの数の合計を調べたい
・ROLLUP関数を使わない場合だと・・・
SELECT WEEK(SALES_DATE) AS WEEK, DAYOFWEEK(SALES_DATE) AS DAY_WEEK, SALES_PRODUCT, SUM(SALES) AS UNITS_SOLD FROM SALES WHERE WEEK(SALES_DATE) = 13 GROUP BY WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE), SALES_PRODUCT ORDER BY WEEK, DAY_WEEK, SALES_PRODUCT
これは次のような結果になります。
さらにある項目の合計結果を表示する場合は・・・
SELECT SUM(SALES) AS UNITS_SOLD FROM SALES
そこで、ROLLUP関数を使用すると・・・
SELECT WEEK(SALES_DATE) AS WEEK, DAYOFWEEK(SALES_DATE) AS DAY_WEEK, SALES_PERSON, SUM(SALES) AS UNITS_SOLD FROM SALES WHERE WEEK(SALES_DATE) = 13 GROUP BY ROLLUP ( WEEK(SALES_DATE), DAYOFWEEK(SALES_DATE), SALES_PRODUCT ) ORDER BY WEEK, DAY_WEEK, SALES_PRODUCT
そこでROLLUP関数を活用すれば、ソースコードの作成は手間を省くことが可能になります。
以上、SQLデータベースでのROLLUP関数の紹介でした。