I have 3 columns like below:
| ID | Status | Date |
|---|---|---|
| 001 | T | 2022-09-27 |
| 001 | T | 2022-09-26 |
| 001 | T | 2022-09-25 |
| 001 | T | 2022-09-24 |
| 001 | T | 2022-09-23 |
| 001 | T | 2022-09-22 |
| 001 | T | 2022-09-21 |
| 001 | R | 2022-09-20 |
| 001 | R | 2022-09-19 |
| 001 | R | 2022-09-18 |
| 001 | R | 2022-09-17 |
| 001 | R | 2022-09-16 |
| 001 | T | 2022-09-15 |
| 001 | T | 2022-09-14 |
| 001 | T | 2022-09-13 |
| 001 | T | 2022-09-12 |
| 001 | T | 2022-09-11 |
| 001 | T | 2022-09-10 |
| 001 | T | 2022-09-09 |
| 001 | T | 2022-09-08 |
| 001 | T | 2022-09-07 |
| 001 | T | 2022-09-06 |
How can I generate an output like this in Snowflake?
| ID | Status | Start_date | End_date |
|---|---|---|---|
| 001 | T | 2022-09-21 | 2022-09-27 |
| 001 | T | 2022-09-06 | 2022-09-15 |
CodePudding user response:
It is "gaps and islands" class problem. The easiest way is to use 
