匯總

Barbara Streisand
Barbara Streisand原創
2024-11-19 18:20:03773瀏覽

匯總

了解 SQL 中 匯總 函數的使用

匯總 函數是 SQL 中的強大工具,可讓您在聚合查詢中產生小計和總計。此功能對於需要計算不同詳細程度的合併值的報告和分析特別有用。


什麼是匯總?

匯總 函數與 GROUP BY 子句結合使用來建立分層分組。它會自動在查詢末尾添加代表小計(部分總和)和總計的額外行。

基本文法

SELECT column1, column2, aggregation(column3)
FROM table
GROUP BY 匯總(column1, column2);

它是如何運作的?

  • 匯總 依層級順序處理 GROUP BY 子句中指定的欄位。
  • 它首先將每個更詳細層級的所有值分組,然後逐漸移動到不太詳細的層級。
  • 最後,它添加了一行,其中包含總計

實際例子

讓我們使用上面程式碼中建立的產品表,其中包含有關產品及其類別的資訊。

1. 普通查詢

如果我們只查詢按類別分組,我們會得到以下結果:

SELECT product_category, SUM(product_value) AS total
FROM products
GROUP BY product_category;

結果:

Category Total
clothing 40.48
food 6.97

2. 使用匯總查詢

透過新增 匯總 函數,我們可以包含小計和總計:

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);

結果:

類別 總計 標題> 服裝 40.48 食物 6.97
Category Total
clothing 40.48
food 6.97
Grand Total 47.45
總計 47.45 表>

3. 多級小計


我們可以更進一步,計算多個等級的小計。例如,要按類別和產品計算小計:

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
描述 總計 標題> T卹 10.99 短褲 8.99 鞋子 20.50 小計 - 服裝 40.48 米飯 1.99 爆米花 0.99 菲力牛排 3.99 小計 - 食物 6.97 總計 47.45 表>

何時使用 匯總?

  • 需要綜合摘要的報告
  • 您想要自動化總計算而無需編寫額外查詢的場景。
  • 需要不同粒度等級分析的分層資料

匯總 功能簡化了複雜報告的創建,減少了手動操作的需要。 Oracle、SQL Server 和 MySQL 等許多資料庫都支援此功能。使用它可以使您的查詢更加高效,讓您的報告更加動態! ?

以上是匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn