Я пытаюсь получить первое запланированное время начала и последнее запланированное время окончания для каждого пользователя в моей таблице schedule_jobs для даты.
Я могу заставить его работать на одного пользователя, но при попытке для всех пользователей в день я могу получить последний раз, но не могу получить правильный первый раз, когда отображается время первого идентификатора пользователя для всех идентификаторов пользователя.
Вот мой код:
SELECT DISTINCT on (user_id)
user_id, first_value(scheduled_jobs.at) over (order by user_id, scheduled_jobs.at ASC),
last_value(scheduled_jobs.to) over (order by user_id, scheduled_jobs.at DESC)
FROM scheduled_jobs
WHERE scheduled_jobs.at between CURRENT_DATE+INTERVAL'3 day' and CURRENT_DATE +INTERVAL '4 day'
Пример текущих результатов:
user_id | first_value | last_value
19 | 2018-10-29 07:00:00 | 2018-10-29 17:00:00
30 | 2018-10-29 07:00:00 | 2018-10-29 15:00:00
37 | 2018-10-29 07:00:00 | 2018-10-29 16:30:00
Last_value отображается правильно для каждого user_id, однако first_value всегда показывает значение для первого user_id для всех.
Я попытался разбить их на разные запросы SELECT с помощью JOIN и запроса USING, но все еще получаю неправильные результаты для first_value.