ホームページ >データベース >mysql チュートリアル >ロールアップ
ロールアップ 関数は、集計クエリで小計と総計を生成できる SQL の強力なツールです。この機能は、さまざまな詳細レベルで統合値を計算する必要があるレポートや分析に特に役立ちます。
ロールアップ 関数は、GROUP BY 句と組み合わせて使用され、階層グループを作成します。小計 (部分合計) と総計を表す行がクエリの最後に自動的に追加されます。
SELECT column1, column2, aggregation(column3) FROM table GROUP BY ロールアップ(column1, column2);
上記のコードで作成した製品テーブルを操作してみましょう。このテーブルには、製品とそのカテゴリに関する情報が含まれています。
カテゴリによるグループ化のみをクエリすると、次の結果が得られます:
SELECT product_category, SUM(product_value) AS total FROM products GROUP BY product_category;
結果:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
ロールアップ 関数を追加すると、小計と総計が含まれます。
SELECT CASE WHEN product_category IS NULL THEN 'Grand Total' ELSE product_category END AS category, SUM(product_value) AS total FROM products GROUP BY ロールアップ(product_category);
結果:
Category | Total |
---|---|
clothing | 40.48 |
food | 6.97 |
Grand Total | 47.45 |
さらに進んで、複数のレベルで小計を計算できます。たとえば、カテゴリおよび製品ごとに小計を計算するには:
SELECT CASE WHEN product_category IS NULL AND product_name IS NULL THEN 'Grand Total' WHEN product_name IS NULL THEN 'Subtotal - ' || product_category ELSE product_name END AS description, SUM(product_value) AS total FROM products GROUP BY ロールアップ(product_category, product_name);
結果:
Description | Total |
---|---|
T-shirt | 10.99 |
Shorts | 8.99 |
Shoes | 20.50 |
Subtotal - clothing | 40.48 |
Rice | 1.99 |
Popcorn | 0.99 |
Filet Steak | 3.99 |
Subtotal - food | 6.97 |
Grand Total | 47.45 |
ロールアップ 関数を使用すると、複雑なレポートの作成が簡素化され、手動操作の必要性が減ります。この機能は、Oracle、SQL Server、MySQL などの多くのデータベースでサポートされています。これを使用すると、クエリがより効率的になり、レポートがより動的になります。 ?
以上がロールアップの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。