【发布时间】:2022-01-23 23:55:08
【问题描述】:
我在下面编写了两个查询,结果类似于:
表:company_changes
| user_id | start_at | end_at | company_id |
|---|---|---|---|
| 189 | 2020-12-12 | 2021-03-02 | 88 |
| 189 | 2021-03-02 | 2050-01-01 | 169 |
表:enablement_changes
| user_id | start_at | end_at | enablement |
|---|---|---|---|
| 189 | 2020-12-12 | 2021-10-15 | disabled |
| 189 | 2021-10-15 | 2050-01-01 | enabled |
重要的是我知道用户何时处于某个company_id 并且是enabled 或disabled。
我想要的结果是这样的表格:
| user_id | start_at | end_at | company_id | status |
|---|---|---|---|---|
| 189 | 2020-12-12 | 2021-03-02 | 88 | disabled |
| 189 | 2021-03-02 | 2021-10-15 | 169 | disabled |
| 189 | 2021-10-15 | 2050-01-01 | 169 | enabled |
我本质上想将这些查询的结果组合在一起。 2050-01-01 是未来的任意日期。由于user_id 没有更改status 或company_id,因此它显示为2050-01-01,因为它是用户的当前状态。
知道如何解决这个问题吗?
这里是小提琴:http://sqlfiddle.com/#!9/5c42b6
第一次在 Stackoverflow 上提问...如果我的问题格式不正确,请告诉我。
【问题讨论】:
标签: mysql sql snowflake-cloud-data-platform