我有以下三個查詢可以得到三個特定時間段內產品的平均價格:所有數據,最近7天和最近30天。三個時期的計算平均值
SELECT AVG(Price) AS AggregatedPrice, COUNT(*) AS PCount
FROM dbo.Products
WHERE Id = @id
SELECT AVG(Price) AS AggregatedPrice, COUNT(*) AS PCount
FROM dbo.Products
WHERE Id = @id AND DATEDIFF(day, UpdatedDatetime, getdate()) < 7
SELECT AVG(Price) AS AggregatedPrice, COUNT(*) AS PCount
FROM dbo.Products
WHERE Id = @id AND DATEDIFF(day, UpdatedDatetime, getdate()) < 30
這三個查詢給我正確的數據,但不是我想要的形式。有沒有辦法將這三個查詢合併爲一個。我的最終目標是創建一個包含所有這些數據的視圖。
此外,在我看來,7天計算的平均值可以重複使用30天和所有列表。有我可以做的優化嗎?
太棒了!我看了這個執行計劃,它比3次選擇要快。 – Martin 2011-03-25 16:52:13