【发布时间】:2021-04-19 10:00:49
【问题描述】:
我有以下案例变更记录:
| id | case_id | state | time_created |
|---|---|---|---|
| 1 | 100 | REVIEW_NEEDED | 2021-03-30 15:11:58.015907000 |
| 2 | 100 | REVIEW_NEEDED | 2021-04-01 13:08:17.945926000 |
| 3 | 100 | REVIEW | 2021-04-07 06:20:48.873865000 |
| 4 | 100 | WAITING | 2021-04-07 06:32:47.159664000 |
| 5 | 100 | REVIEW_NEEDED | 2021-04-09 06:32:51.132127000 |
| 6 | 100 | REVIEW | 2021-04-12 04:39:36.426467000 |
| 7 | 100 | REVIEW | 2021-04-12 04:40:36.000000000 |
| 8 | 100 | CLOSED | 2021-04-12 04:40:43.133736000 |
| 9 | 101 | REVIEW_NEEDED | 2021-03-30 20:37:58.015907000 |
| 10 | 101 | REVIEW | 2021-04-04 13:08:17.945926000 |
| 11 | 101 | CLOSED | 2021-04-06 06:20:48.873865000 |
| 12 | 101 | CLOSED | 2021-04-06 06:20:50.000000000 |
我想报告以下这些会话:
| open_id | close_id | case_id | waiting_time_start | handling_time_start | handling_time_end |
|---|---|---|---|---|---|
| 1 | 4 | 100 | 2021-03-30 15:11:58.015907000 | 2021-04-07 06:20:48.873865000 | 2021-04-07 06:32:47.159664000 |
| 5 | 8 | 100 | 2021-04-09 06:32:51.132127000 | 2021-04-12 04:39:36.426467000 | 2021-04-12 04:40:43.133736000 |
| 9 | 11 | 101 | 2021-03-30 20:37:58.015907000 | 2021-04-04 13:08:17.945926000 | 2021-04-06 06:20:48.873865000 |
Waiting_time_start:当状态 = REVIEW_NEEDED
Handling_time_start:当 state = REVIEW
Handling_time_end:当状态 = WAITING 或 CLOSED
我目前的解决方案是对每个案例的 Waiting_time_start、Handling_time_start 和 Handling_time_end 进行排名,然后将这些事件加入排名,但这是由于存在重复记录,因此并不完美,因此每个案例的开始/停止事件的数量可能会有所不同。
非常感谢您的任何想法!
【问题讨论】:
标签: sql duplicates snowflake-cloud-data-platform window-functions gaps-and-islands