Senior
Window Functions
SQL & Databases
Write a query to calculate moving average of last 7 days.
Short answer: Use AVG(Amount) OVER (ORDER BY OrderDate ROWS BETWEEN 6 PRECEDING AND CURRENT ROW).
Sample solution
T-SQL
SELECT OrderDate, Amount,
AVG(Amount * 1.0) OVER (
ORDER BY OrderDate
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS MovingAvg7
FROM DailySales;
ROWS vs RANGE matters when OrderDate has duplicates.
Share this Q&A
Share preview image: https://www.toolliyo.com/images/toolliyo-logo.png