Вы можете попробовать присоединить календарную таблицу к текущей таблице, а затем агрегировать по дням:
WITH dates AS (
SELECT date_trunc('day', dd)::date AS date
FROM generate_series
( '2020-06-14'::timestamp
, '2020-06-17'::timestamp
, '1 day'::interval) dd
)
SELECT
d.date,
STRING_AGG(t.user_id::text, ',' ORDER BY t.user_id) AS user_ids
FROM dates d
LEFT JOIN yourTable t
ON d.date BETWEEN t.start_date AND t.end_date
GROUP BY
d.date
ORDER BY
d.date;
![screen capture from demo link below](https://i.stack.imgur.com/NthEj.png)
Демо
Если вам нужно расширить диапазон календарной таблицы, чтобы охватить больше актуальных данных, просто отредактируйте CTE и измените даты начала и окончания.