區分 PARTITION BY 和 GROUP BY
在使用聚合查詢時,GROUP BY 長期以來一直是整理資料的熟悉選項。然而,PARTITION BY 的出現引入了類似的概念,引發了人們對其與 GROUP BY 關係的疑問。
理解 GROUP BY 的作用
GROUP BY 運行於查詢級別,轉換整個查詢結果。透過根據特定列對行進行分組,它會壓縮數據,計算每個組的聚合值(例如計數、平均值、總和)。例如:
select customerId, count(*) as orderCount from Orders group by customerId
PARTITION BY:不同的視角
與 GROUP BY 不同,PARTITION BY 與視窗函數相關聯,例如 ROW_NUMBER()。它在視窗計算範圍內運行,修改這些函數計算結果的方式。考慮以下範例:
select row_number() over (partition by customerId order by orderId) as OrderNumberForThisCustomer from Orders
需要注意的主要差異
以上是GROUP BY 與 PARTITION BY:聚合查詢的主要差異是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!