У меня есть интересная вещь, которую я должен сделать в Redshift.Скажем, у меня есть такая таблица:
index,total,delta
0,3,null
1,5,2
2,10,5
3,11,1
4,null,4
5,null,6
6,null,2
, где delta
- это разница между total
и total
предыдущего ряда.Здесь мои delta
получены из источника, отличного от total
, поэтому можно получать delta
без получения обновленных total
с.
Как я могу вычислить total
в соответствии с delta
с?Вот так:
index,total,delta
0,3,null
1,5,2
2,10,5
3,11,1
4,15,4
5,21,6
6,23,2
Я бездельничаю где-то поблизости от NVL(total, LAST_VALUE(total IGNORE NULLS) OVER (ORDER BY index ROWS UNBOUNDED PRECEDING) + SUM(delta) OVER (ORDER BY index ROWS UNBOUNDED PRECEDING)
, но это не совсем так - я хочу только SUM
delta
s, для которых естьне соответствуют total
.