我有一个具有以下结构的表:
timestamp | name | value
0 | john | 5
1 | NULL | 3
8 | NULL | 12
12 | john | 3
33 | NULL | 4
54 | pete | 1
180 | NULL | 4
400 | john | 3
401 | NULL | 4
592 | anna | 2
现在我正在寻找的是一个查询,它将为我提供每个名称的值的总和,并将其间的空值(按时间戳排序)视为列表中的第一个非空名称,就好像表是如下:
timestamp | name | value
0 | john | 5
1 | john | 3
8 | john | 12
12 | john | 3
33 | pete | 4
54 | pete | 1
180 | john | 4
400 | john | 3
401 | anna | 4
592 | anna | 2
我会查询SUM(value), name from this table group by name
。我已经思考并尝试过,但我无法提出适当的解决方案。我看过递归公用表表达式,并认为答案可能就在那里,但我无法正确理解这些。
这些表只是示例,我事先并不知道时间戳值。
有人可以帮帮我吗?帮助将不胜感激。