【发布时间】:2021-11-25 10:50:17
【问题描述】:
这是 2021 年 9 月 1 日至 2021 年 9 月 10 日期间用户状态的表格。 1 表示“活跃”。 0 表示“已取消”。
| date | user | status |
|---|---|---|
| 9/1/2021 | 1 | 1 |
| 9/1/2021 | 2 | 0 |
| 9/1/2021 | 3 | 1 |
| 9/2/2021 | 1 | 1 |
| 9/2/2021 | 2 | 1 |
| 9/2/2021 | 3 | 1 |
| 9/3/2021 | 1 | 0 |
| 9/3/2021 | 2 | 1 |
| 9/3/2021 | 3 | 1 |
| 9/4/2021 | 1 | 0 |
| 9/4/2021 | 2 | 1 |
| 9/4/2021 | 3 | 1 |
| 9/5/2021 | 1 | 0 |
| 9/5/2021 | 2 | 1 |
| 9/5/2021 | 3 | 0 |
| 9/6/2021 | 1 | 1 |
| 9/6/2021 | 2 | 1 |
| 9/6/2021 | 3 | 0 |
| 9/7/2021 | 1 | 1 |
| 9/7/2021 | 2 | 1 |
| 9/7/2021 | 3 | 0 |
| 9/8/2021 | 1 | 0 |
| 9/8/2021 | 2 | 1 |
| 9/8/2021 | 3 | 1 |
| 9/9/2021 | 1 | 0 |
| 9/9/2021 | 2 | 1 |
| 9/9/2021 | 3 | 1 |
| 9/10/2021 | 1 | 1 |
| 9/10/2021 | 2 | 0 |
| 9/10/2021 | 3 | 1 |
我想获取在此期间每个用户的活动和取消时段的开始和结束日期。我知道这涉及到一个窗口函数,但我不知道该怎么做。这是我想要的输出:
| user | status | start date | end date |
|---|---|---|---|
| 1 | 1 | 9/1/2021 | 9/2/2021 |
| 1 | 0 | 9/3/2021 | 9/5/2021 |
| 1 | 1 | 9/6/2021 | 9/7/2021 |
| 1 | 0 | 9/8/2021 | 9/9/2021 |
| 1 | 1 | 9/10/2021 | 9/10/2021 |
| 2 | 0 | 9/1/2021 | 9/1/2021 |
| 2 | 1 | 9/2/2021 | 9/9/2021 |
| 2 | 0 | 9/10/2021 | 9/10/2021 |
| 3 | 1 | 9/1/2021 | 9/4/2021 |
| 3 | 0 | 9/5/2021 | 9/7/2021 |
| 3 | 1 | 9/8/2021 | 9/10/2021 |
【问题讨论】:
-
不会按开始日期订购,状态工作?
标签: sql aggregate-functions window-functions