【问题标题】:Redshift SQL SUM over fixed number days固定天数的 Redshift SQL SUM
【发布时间】:2021-11-12 06:53:50
【问题描述】:

我目前遇到一个问题。我有每日数据,我想对一年中接下来 30 天的所有数据求和。

Date Views
28-01-2021 1
29-01-2021 5
30-01-2021 1
31-01-2021 5

我希望在接下来的 30 天内从 28 日开始的观看次数,然后是接下来的 30 天等...超过一年(或十二次)

所以基本上我想看到的是这样的,系列是 30 天的系列(前 30 天,第二个 30 天等......)

Series Views
1 (from 28-01 to 28-02) 250
2 (from 01-03 to 30-03) 200
3 (from 31-04 to 29-04) 300
4 (from 30-04 to 29-05) 550

如果有人可以提供帮助,谢谢。

问候

【问题讨论】:

    标签: sql amazon-redshift


    【解决方案1】:

    假设你每天有一行,你可以使用窗口函数:

    select t.*,
           sum(views) over (order by date
                            rows between current row and 29 following
                           ) as views_30days
    from t;
    

    注意:这将“未来 30 天”解释为“今天加上未来 29 天”。如果您不想要当天,那么窗口框架将是:

                            rows between 1 following and 29 following
    

    【讨论】:

    • 谢谢,我会尝试使用它,但我不希望我的日子重叠。这真的是一个系列。我添加了一个例子,如果我不清楚,对不起)
    猜你喜欢
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-13
    相关资源
    最近更新 更多