【发布时间】:2021-05-17 17:57:03
【问题描述】:
美好的一天。我有一个有条件的置换表,我正在运行 redshift DB。这是一个包含事件日志的表,我将其拆分为会话开始 (bool = 1) 和会话继续 (bool = 0),如下所示:
=======================
| ID | BOOL |
=======================
| 1 | 0 |
| 2 | 1 |
| 3 | 0 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
| 7 | 0 |
| 8 | 0 |
| 9 | 0 |
| 10 | 0 |
| 11 | 1 |
| 12 | 0 |
| 13 | 0 |
| 14 | 1 |
| 15 | 0 |
| 16 | 0 |
=======================
我需要用dense_rank 之类的东西创建sesssion_id 列:
================================
| ID | BOOL | D_RANK |
================================
| 1 | 0 | 1 |
| 2 | 1 | 2 |
| 3 | 0 | 2 |
| 4 | 0 | 2 |
| 5 | 0 | 2 |
| 6 | 0 | 2 |
| 7 | 0 | 2 |
| 8 | 0 | 2 |
| 9 | 0 | 2 |
| 10 | 0 | 2 |
| 11 | 1 | 3 |
| 12 | 0 | 3 |
| 13 | 0 | 3 |
| 14 | 1 | 4 |
| 15 | 0 | 4 |
| 16 | 0 | 4 |
================================
有没有办法做到这一点?将不胜感激。
【问题讨论】:
-
我认为第二行的值应该是
2而不是1。 -
是的,你是对的
标签: sql amazon-redshift window-functions dense-rank