SQLデータベースでのROLLUP関数

データベースSQLServer,データベース

記事内に広告が含まれています。

主に総計や小計など集計用の便利な関数です。
※ただ、使い方、動きをしっかり把握していないと集計対象が複雑になる場合があります。
ここはざっくり「この関数の存在がある」という旨を公開しますので、参考にしてください。

用途:
指定されている複数のカラムの数の合計を調べたい

・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関数の紹介でした。

システムトラストでは一緒に働いていただける仲間を募集中です。
株式会社システムトラスト

システムトラストでは、システムエンジニア、プログラマーなどを随時募集中です。気軽にご相談ください。

お問合せ