I have this SQL query:
SELECT
strftime('%Y-%m-%d', start_time) as day, group_concat(event_id, ' | ') as events
FROM
events_table
WHERE
start_time BETWEEN '2022-01-01 00:00:00' and '2022-03-31 23:59:59'
and event_id is not null
GROUP by day
This returns:
|-------------------------------------------------------------------------|
| day | events |
|-------------------------------------------------------------------------|
| 1999-01-04 | event_1 | event_2 | event_3 | event_4 |
| 1999-01-05 | event_1 | event_1 | event_2 |
| 1999-01-07 | event_1 | event_2 | event_2 | event_3 | event_2 | event_3 |
|-------------------------------------------------------------------------|
Inside day events are ordered by start time. But I want to get:
|-------------------------------------------------------------------------|
| day | events |
|-------------------------------------------------------------------------|
| 1999-01-04 | event_1 | event_2 | event_3 | event_4 |
| 1999-01-05 | event_1 | event_2 |
| 1999-01-07 | event_1 | event_2 | event_3 | event_2 | event_3 |
|-------------------------------------------------------------------------|
As You can see, if consecutive values of column equal they should be joined into one, values delimited by |
sign
In other words if two or more consecutive values of column are same they should be merged into one, so avoid repetition