I have data of users performing different tasks. I would like to group this data per userid and task id to get the start and end times per task. When the employee changes to another task, there should be a new row with new start and end time.
Example simplified data set:
userid | taskid | date_time_stamp (ascending) |
---|---|---|
1 | task-A | 16/6/2021 04:17:00 |
1 | task-A | 16/6/2021 04:19:00 |
1 | task-A | 16/6/2021 04:27:00 |
1 | task-B | 16/6/2021 04:31:00 |
1 | task-B | 16/6/2021 04:33:00 |
1 | task-B | 16/6/2021 04:36:00 |
1 | task-A | 16/6/2021 04:42:00 |
1 | task-A | 16/6/2021 04:44:00 |
example result
userid | taskid | first_dtm | last_dtm |
---|---|---|---|
1 | task-A | 16/6/2021 04:17:00 | 16/6/2021 04:27:00 |
1 | task-B | 16/6/2021 04:31:00 | 16/6/2021 04:36:00 |
1 | task-A | 16/6/2021 04:42:00 | 16/6/2021 04:44:00 |
I understand that I should work with some min() and max() functions combined with a GROUP BY. However, grouping by userid and taskid, will result in only one row for task-A in this example.