计算最后滚动四个星期的平均值

时间:2021-04-23 15:21:14

标签: sql sql-server ssms

所以我现在有了这张表,我想添加最后滚动四个星期的平均值。

enter image description here

为了得到这样的东西。

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用窗口函数:

avg(input) over (order by date rows between 1 preceding and 4 preceding) as prev_avg_4

答案 1 :(得分:0)

我做了以下事情:

CREATE TABLE Test (
 DateRecorded datetime,
 SampleValue int,
 AvgValue float,
);

DECLARE @Now DATETIME = SYSDATETIME();
DECLARE @AvgLast4Hours FLOAT;

SET @AvgLast4Hours =
    (SELECT AVG(Cast(SampleValue as Float)) from Test
    WHERE DateRecorded BETWEEN DATEADD(HOUR, -4, @Now) AND @Now)

INSERT INTO Test VALUES
(@Now, 23, @AvgLast4Hours)

我使用了 SQL SERVER,也许您需要做一些调整,例如更改数据库函数的 SYSDATETIME 函数。另外,我使用了 4 小时的间隔,根据您的需要更改它。