[英]divide values in a Group By query
如何構建這樣的請求(Sql Server 2008 R2):
(我需要每個結果的“平均價格”)
SELECT
CategoryId
, SUM(Price) AS TotalPrice
, SUM(Quantity) AS TotalQuantity
-->, TotalPrice/TotalQuantity AS AveragePrice
FROM Products
GROUP BY CategoryId
(如果可能的話,不再重新計算兩個SUM ...)
沒有重新計算......
SELECT *, A.TotalPrice / A.TotalQuantity AS AveragePrice
FROM (SELECT
CategoryId
, SUM(Price) AS TotalPrice
, SUM(Quantity) AS TotalQuantity
FROM Products
GROUP BY CategoryId) AS A
SELECT CategoryId,
SUM(Price) AS TotalPrice,
SUM(Quantity) AS TotalQuantity,
(SUM(Price) * 1.0 / SUM(Quantity) * 1.0) AS AveragePrice
FROM Products
GROUP BY CategoryId
或者你可以使用CTE
WITH cte
AS
(
SELECT CategoryId,
SUM(Price) AS TotalPrice,
SUM(Quantity) AS TotalQuantity
FROM Products
GROUP BY CategoryId
)
SELECT CategoryId,
TotalPrice,
TotalQuantity,
TotalPrice / TotalQuantity * 1.0 AveragePrice
FROM cte
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.