首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL 進階查詢:排序、去重、聚合函數與 GROUP BY 實戰

     編輯:MySQL 資料庫相關知識

ORDER BY:靈活排序

  • 預設升序(ASC),加 DESC 降序。
  • 多欄位排序優先級由左至右遞減。
  • 可排序未在 SELECT 清單中的欄位。

DISTINCT:去除重複列

作用於所有選取欄位的組合。可搭配 WHERE 先過濾,再去重,最後 ORDER BY。

聚合函數

函數說明
COUNT(*)列數(含 NULL)
COUNT(col)非 NULL 值個數
AVG/SUM數值欄位平均/總和
MIN/MAX最小/最大非 NULL 值(字串依字典序)

應用程式取結果時,欄位名即為函數名(如 AVG(net_amount))。

GROUP BY:分組聚合

  • 可分組多欄位,順序影響結果排序。
  • SELECT 清單中非聚合欄位必須出現在 GROUP BY。
  • WHERE 先於分組過濾;HAVING 針對分組結果再過濾(常用於聚合條件)。

範例

SELECT company, AVG(net_amount)
FROM Sales
WHERE last_name BETWEEN 'A' AND 'M'
GROUP BY company
HAVING AVG(net_amount) > 500;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved