首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL GROUP BY WITH ROLLUP 進階聚合分析詳解

     編輯:MySQL 綜合教學

MySQL GROUP BY WITH ROLLUP 進階聚合分析詳解

基本概念

WITH ROLLUP 修飾符可在 GROUP BY 結果中新增彙總行,提供多層級聚合分析,支援 OLAP(線上分析處理)操作。

單欄位分組範例

假設 sales 表包含 year、country、product、profit。

-- 一般分組
SELECT year, SUM(profit) FROM sales GROUP BY year;
-- 結果:2000年 4525、2001年 3010

-- 加上 WITH ROLLUP
SELECT year, SUM(profit) FROM sales GROUP BY year WITH ROLLUP;
-- 結果:2000年 4525、2001年 3010、NULL 7535(總計行)

NULL 代表該層級的總計。

多欄位分組層級聚合

SELECT year, country, product, SUM(profit)
FROM sales
GROUP BY year, country, product WITH ROLLUP;

輸出包含四層聚合:

  1. 每組 year + country 下的產品小計(product = NULL)
  2. 每個 year 下的國家/產品總計(country = NULL, product = NULL)
  3. 所有年份總計(year = NULL, country = NULL, product = NULL)

重要限制與注意事項

  • 不可與 ORDER BY 共用:ROLLUP 與 ORDER BY 互斥
  • 可在 GROUP BY 列後指定 ASC/DESC 控制單欄排序
  • 彙總行固定出現在所屬分組之後

適用場景

報表統計、多維度資料分析、儀表板彙總展示,避免應用層二次計算總計。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved