USE AdventureWorks2008R2;
GO
SELECT SalesOrderID, ProductID, OrderQty
,SUM(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Total'
,AVG(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Avg'
,COUNT(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Count'
,MIN(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Min'
,MAX(OrderQty) OVER(PARTITION BY SalesOrderID) AS 'Max'
FROM Sales.SalesOrderDetail
WHERE SalesOrderID IN(43659,43664);
ฉันอ่านเกี่ยวกับข้อนั้นและฉันไม่เข้าใจว่าทำไมฉันต้องการมัน ฟังก์ชั่นOverทำอะไร? อะไรPartitioning Byทำอย่างไร ทำไมฉันไม่สามารถทำแบบสอบถามที่มีการเขียนGroup By SalesOrderID?