【发布时间】:2021-11-06 01:55:07
【问题描述】:
我有以下数据集。
| date | orig | dest | value |
|---|---|---|---|
| 11-4 | S8 | B9 | -42 |
| 10-30 | S8 | B9 | -2999 |
| 10-15 | S8 | B9 | 959 |
| 10-14 | S8 | B9 | 480 |
| 10-13 | S8 | B9 | 0 |
| 10-9 | S8 | B9 | 503 |
我怎样才能把它变成这样的东西?
| date | orig | dest | value | new value |
|---|---|---|---|---|
| 11-4 | S8 | B9 | -42 | 959 |
| 10-30 | S8 | B9 | -2999 | 959 |
| 10-15 | S8 | B9 | 959 | 959 |
| 10-14 | S8 | B9 | 480 | 480 |
| 10-13 | S8 | B9 | 0 | 503 |
| 10-9 | S8 | B9 | 503 | 503 |
这是我用过的,不正确:
CASE WHEN value <= 0
THEN last_value(value) over (PARTITION BY orig, dest ORDER BY date DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
ELSE value
END as new_value
这里的目标是不要用最近的最大值替换
【问题讨论】:
标签: sql amazon-web-services amazon-redshift window-functions