【发布时间】:2020-03-27 09:12:15
【问题描述】:
我有一个带有值的 SQL 服务器表:
CREATE TABLE [dbo].[MonthleyAvarage](
[Boxes] [int] NULL,
[DateMonthly] [date] NULL
) ON [PRIMARY]
GO
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (1,'01/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (10,'02/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (5,'03/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (9,'04/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (3,'05/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (7,'06/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (5,'07/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (4,'08/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (55,'09/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (6,'10/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (8,'11/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (0,'12/01/2010')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (2,'01/01/2011')
insert into MonthleyAvarage ([Boxes],[DateMonthly]) values (1,'02/01/2011')
我试图计算每个月过去 12 个月的平均值,但我只计算了过去 12 个月的累积平均值
select AVG(Boxes) over (order by DATEADD(MONTH, DATEDIFF(MONTH, 0, DateMonthly), -12)) as avarage,DateMonthly,Boxes
from monthleyavarage
我怎样才能只用过去 12 个月?变成这样:
请问我该怎么做?
【问题讨论】:
标签: sql sql-server tsql window-functions