从SQL或Tableau中的更改事件计算每周快照

时间:2016-03-03 23:25:16

标签: sql postgresql salesforce greatest-n-per-group amazon-redshift

当记录的字段发生变化时,我有一张记录快照表,如下所示:

       name         |    created_date     |       value
--------------------+---------------------+----------------------
                  a | 2016-01-01 21:36:48 | 300
                  a | 2016-01-20 17:58:00 | 400
                  b | 2016-01-06 17:58:00 | 100
                  b | 2016-01-27 17:58:00 | 300
                  c | 2016-03-03 17:58:00 | 500

如何使用此数据以每周为基础获取最新值的总和,使用任何一个名称的最新行。

e.g。

Week 1 (1/3) - 300 (a)
Week 2 (1/10) - 400 (a+b)
Week 3 (1/17) - 400 (a+b)
Week 4 (1/24) - 500 (a'+b)
Week 5 (1/31) - 700 (a+b')
Week 6 (2/7) - 700 (a+b)
Week 8 (2/14) - 700 (a+b)
...
Week 11 (3/7) - 1200 (a+b+c)

如果我可以按周创建一个显示每条记录的最新条目的行的表,那么我可以计算每周的总和,但我不知道如何创建这样的表。

1 个答案:

答案 0 :(得分:1)

这个(SQLFiddle)应该做你想要的。

本周(在本例中)从1月3日开始,从周日到周六。有一个例子表示一周内有多个名字,多个名字多次出现。