The Moving Average used to be complex, but with the Windowing Functions, the Moving Average is easier and performs much better.
In this video I show you how to create a moving average in SQL using the OVER Clause and the ROWS Clause.
Video: SQL Moving Average with Windowing
How to use the SQL Over Clause for a Moving Average.
I use the Wide World Importers and the following scripts:
select [Invoice Date Key], sum(Profit) Profit into dbo.ProfitByDate from [Fact].[Sale] group by [Invoice Date Key]; select [Invoice Date Key], avg(Profit) OVER (ORDER BY [Invoice Date Key] ROWS BETWEEN 4 PRECEDING AND CURRENT ROW) as AverageProfit from dbo.ProfitByDate order by 1
Link to the Microsoft SQL Server Over Clause.
See the original SQL Rolling Average with Windowing video.