【发布时间】:2021-07-08 11:41:24
【问题描述】:
我有下表:
| customer_id | transacting date | day_end_balance |
|---|---|---|
| 523161 | 7/2/2021 | 136.2 |
| 523161 | 6/14/2021 | 215.4 |
| 523161 | 6/7/2021 | 0 |
| 523161 | 6/2/2021 | 440 |
所以余额会在交易发生时显示,如果没有交易发生,余额在一天结束时保持不变。我想创建一个表格,显示从客户生命之初到今天每个客户的日终余额。检查下表以获得所需的输出。
| customer_id | transacting date | day_end_balance |
|---|---|---|
| 523161 | 6/2/2021 | 440 |
| 523161 | 6/3/2021 | 440 |
| ...... | ............ | ..... |
| 523161 | 6/7/2021 | 0 |
| 523161 | 6/8/2021 | 0 |
| 523161 | 6/9/2021 | 0 |
| 523161 | 6/10/2021 | 0 |
| 523161 | 6/11/2021 | 0 |
| 523161 | 6/12/2021 | 0 |
| 523161 | 6/13/2021 | 0 |
| 523161 | 6/14/2021 | 215.4 |
| 523161 | 6/14/2021 | 215.4 |
| 523161 | 6/15/2021 | 215.4 |
| 523161 | 6/16/2021 | 215.4 |
| 523161 | 6/17/2021 | 215.4 |
| 523161 | 6/18/2021 | 215.4 |
| 523161 | 6/19/2021 | 215.4 |
| 523161 | 6/20/2021 | 215.4 |
| 523161 | 6/21/2021 | 215.4 |
| 523161 | 6/22/2021 | 215.4 |
| 523161 | 6/23/2021 | 215.4 |
| 523161 | 6/24/2021 | 215.4 |
| 523161 | 6/25/2021 | 215.4 |
| 523161 | 6/26/2021 | 215.4 |
| 523161 | 6/27/2021 | 215.4 |
| 523161 | 6/28/2021 | 215.4 |
| 523161 | 6/29/2021 | 215.4 |
| 523161 | 6/30/2021 | 215.4 |
| 523161 | 7/1/2021 | 215.4 |
| 523161 | 7/2/2021 | 136.2 |
| 523161 | .... | 136.2 |
| 523161 | date of today | 136.2 |
我如何在 postgres sql 中执行此操作?我知道它会涉及 last_value() 和 coalesce(),可能还有 lag() 和 lead()。但是不知道怎么写。
【问题讨论】:
标签: postgresql