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

SQL ORDER BY 與 GROUP BY 同時使用:分組排序實戰語法

     編輯:關於SqlServer

核心語法

GROUP BY 先分組聚合,ORDER BY 再對**結果集**排序。兩者可直接組合,ORDER BY 可使用聚合函數別名或位置編號。

範例 1:依銷售量降冪排序


SELECT 
    BaoBeiName,
    COUNT(*) AS SalesCount
FROM Sale
GROUP BY BaoBeiName
ORDER BY COUNT(*) DESC;  -- 或 ORDER BY SalesCount DESC / ORDER BY 2 DESC

範例 2:依銷售總額降冪排序


SELECT 
    BaoBeiName,
    SUM(Price) AS TotalAmount
FROM Sale
GROUP BY BaoBeiName
ORDER BY SUM(Price) DESC;  -- 或 ORDER BY TotalAmount DESC

關鍵規則

規則說明
執行順序FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
ORDER BY 可用SELECT 列表中的別名、聚合函數、位置編號 (1-based)
不可用SELECT 列表以外的欄位 (除非也在 GROUP BY 中)
NULL 排序ASC 時 NULL 排最前;DESC 時排最後

進階:多層級排序


SELECT 
    Category,
    ProductName,
    COUNT(*) AS Cnt,
    SUM(Amount) AS Total
FROM Sales
GROUP BY Category, ProductName
ORDER BY 
    Category ASC,           -- 第一層:類別升冪
    Total DESC,             -- 第二層:同類別內總額降冪
    Cnt DESC;               -- 第三層:總額相同時筆數降冪
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved