【发布时间】:2021-06-03 04:31:49
【问题描述】:
我想用 id 来计算 cap = 0.0000 组的连续 dt 值,我试过这个:
select id ,dt,cap ,row_number() OVER ( partition by id,cap order by id,dt) t1 from tbl
我应该得到这样的结果:
| id | dt | cap | t1 |
|---|---|---|---|
| 10470 | 2020-12-01 00:00:00 | 0.0000 | 1 |
| 10470 | 2021-01-01 00:00:00 | 0.0000 | 2 |
| 10470 | 2021-02-01 00:00:00 | 0.0000 | 3 |
| 10470 | 2021-03-01 00:00:00 | 200.0000 | 1 |
| 10470 | 2021-04-01 00:00:00 | 0.0000 | 1 |
| 10470 | 2021-05-01 00:00:00 | 0.0000 | 2 |
| 10470 | 2021-06-01 00:00:00 | 0.0000 | 3 |
但实际上它的结果如下所示:
| id | dt | cap | t1 |
|---|---|---|---|
| 10470 | 2020-12-01 00:00:00 | 0.0000 | 1 |
| 10470 | 2021-01-01 00:00:00 | 0.0000 | 2 |
| 10470 | 2021-02-01 00:00:00 | 0.0000 | 3 |
| 10470 | 2021-04-01 00:00:00 | 0.0000 | 4 |
| 10470 | 2021-05-01 00:00:00 | 0.0000 | 5 |
| 10470 | 2021-06-01 00:00:00 | 0.0000 | 6 |
| 10470 | 2021-03-01 00:00:00 | 200.0000 | 1 |
如何得到我想要的结果?
【问题讨论】:
标签: postgresql window-functions