【SQL関数】ROLLUP関数で小計と合計を集計する

SQL
※本ページにはプロモーションが含まれます
※本ページにはプロモーションが含まれます
スポンサーリンク

SQLのROLLUP関数とは

SQLは様々な集計関数があります。今回説明するROLLUP関数は、SQLの集計機能の一つです。

複数の階層的な集計結果を生成するために使用されます。ROLLUP関数を使用することで、指定した列や式に基づいて、各階層ごとの集計結果を取得することができます。

ROLLUP関数の基本的な構文

ROLLUP関数の基本的な構文が以下となります。

SELECT column1, column2, ..., aggregate_function(column_or_expression)
FROM table
GROUP BY column1, column2, ..., ROLLUP (column_or_expression)

上記のクエリでは、GROUP BY句で指定した列や式に基づいて、aggregate_functionで指定した集計関数を適用し、集計結果を取得します。そして、ROLLUP句によって、階層的な集計結果が生成されます。

ROLLUP句では、複数の列や式をカンマで区切って指定することができます。指定した列や式の順序に従って、集計結果が生成されます。また、ROLLUP句には、列や式の代わりに()を使用することもできます。これにより、すべての列や式に基づく総合的な集計結果が生成されます。

ROLLUP関数の具体的な使用例

以下に、ROLLUP関数の具体的な使用例を記載します。

SELECT category, subcategory, SUM(quantity) AS total_quantity
FROM sales
GROUP BY ROLLUP (category, subcategory)

上記の例では、salesテーブルからcategorysubcategoryの列を基準にして、quantity列の合計値を計算します。

ROLLUP (category, subcategory)によって、categoryごとの集計結果と、subcategoryごとの集計結果、および全体の集計結果が生成されます。

SQLのROLLUP関数まとめ

ROLLUP関数は、データウェアハウスなどの大量のデータを扱う際に特に有用です。階層的な集計結果を1つのクエリで取得できるため、複数のクエリを実行する必要がなくなります。

指定したカラムの小計と合計を集計することができる便利な関数です!

頭の片隅に置いておくと便利な関数かと思います!

そのほかの集計関数はこちらにもまとめておりますのでご参考ください。

> Coffee Tech Blog SparkSQL集約関数

また、そのほかSQL関連記事をこちらにまとめておりますのでご参考ください。
Coffee Tech Blog SQL関連記事

参考になれば幸いです☕

コメント

タイトルとURLをコピーしました