滚动日期期间的平均值

时间:2019-05-21 04:49:59

标签: sql teradata

我有4个维度,其中之一是日期。我需要针对每个日期,每个维度值计算过去30天的平均值。

我尝试以以下形式对4个维度的分区求平均值:

SELECT
Date, Produce,Company, Song, Revenues,
Average(case when Date between Date -Interval '31' day and Date - Interval '1' Day then Revenues else null End) over (partition by Date,Company,Song,Revenues order by Date) as "Running Average"
From 
Base_Table

我尝试的每次聚合都只能得到null。 感谢帮助。谢谢

1 个答案:

答案 0 :(得分:1)

您可以在下面尝试-

SELECT
Date, Produce,Company, Song, Revenues,
Average(Revenues) over (partition by Company,Song rows between 30 preceding and current row) as "Running Average"
From 
Base_Table