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
テーブルからcategory
とsubcategory
の列を基準にして、quantity
列の合計値を計算します。
ROLLUP (category, subcategory)
によって、category
ごとの集計結果と、subcategory
ごとの集計結果、および全体の集計結果が生成されます。
SQLのROLLUP関数まとめ
ROLLUP
関数は、データウェアハウスなどの大量のデータを扱う際に特に有用です。階層的な集計結果を1つのクエリで取得できるため、複数のクエリを実行する必要がなくなります。
指定したカラムの小計と合計を集計することができる便利な関数です!
頭の片隅に置いておくと便利な関数かと思います!
そのほかの集計関数はこちらにもまとめておりますのでご参考ください。
また、そのほかSQL関連記事をこちらにまとめておりますのでご参考ください。
> Coffee Tech Blog SQL関連記事
参考になれば幸いです☕
コメント