所以我现在有了这张表,我想添加最后滚动四个星期的平均值。
为了得到这样的东西。
答案 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 小时的间隔,根据您的需要更改它。