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

SQL GROUP BY 子句核心教程:分組聚合查詢從入門到精通

     編輯:關於SqlServer

GROUP BY 基本語法

SELECT column1, AGG_FUNC(column2)
FROM table_name
GROUP BY column1;

GROUP BY 將相同 column1 值的行合併為一組,然後對每組執行聚合函數(MAX、MIN、SUM、AVG、COUNT 等)。

經典案例:各部門最高薪資

SELECT dept, MAX(salary) AS max_salary
FROM employee
GROUP BY dept;

結果集包含每個部門及其最高薪資。注意:SELECT 列表中非聚合列必須出現在 GROUP BY 中,否則會報錯(嚴格 SQL 模式)。

常見陷阱與最佳實踐

  • SELECT * 禁忌:分組查詢切勿使用 SELECT *,明確列出聚合列與分組列
  • 多列分組:GROUP BY dept, job_title 產生「部門-職位」二維分組
  • ROLLUP / CUBE:進階分組集合,生成小計/總計行(SQL Server 支援)
  • 索引優化:GROUP BY 列若有索引,可使用 Stream Aggregate 避免 Hash Match 排序

GROUP BY 與 HAVING 聯用流程圖

  1. FROM / JOIN 產生中間結果集
  2. WHERE 過濾行
  3. GROUP BY 分組
  4. 計算聚合值
  5. HAVING 過濾組
  6. SELECT 投影輸出
  7. ORDER BY 排序
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved