簡體   English   中英

在Group By查詢中划分值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM