匯總 函數是 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中文網其他相關文章!