Нужна ваша помощь. Задача вывести последний статус определенного контакта, т.е. контакт может менять статус много раз. Как видно из примера ниже у контакта 121750 сначала был статус "not_authorized", затем "authorized". Тут есть проблема с фильтрацией по статусу. Если выводить список контактов с любым из статусов ("not_authorized", "authorized"), то в обоих случаях контакт 121750 выводится, но это не то, что я хотел бы видеть. Мне нужен только контакт с последним статусом authorized, поскольку он был добавлен в последнюю очередь; а со статусом not_authorized нужно что-то сделать, чтобы он не отображался даже когда contact_status.status = 'not_authorized'. Я пытался написать запрос, который разместил ниже.
id created_at contact_id status
406, 2022-11-15 14:54:20.483000, 121750, not_authorized
407, 2022-11-15 14:55:39.834000, 121750, authorized
SELECT DISTINCT ON (contact_id) id, created_at, contact_id, status
FROM
contact_status
WHERE
contact_status.status = 'authorized' # OR contact_status.status = 'not_authorized'
AND contact_id=121750
ORDER BY contact_id, created_at DESC