Что такое «диалоги пользователей»? Закиньте пример таблицы с данными на sqlize.online или dbfiddle и скиньте ссылку сюда с примером требуемого результата — тогда можно будет поговорить.
Есть таблица со сообщениями, надо из этой таблицы вывести диалоги с последними сообщениями, допустим как в телеграмме со списком чатов
GROUP BY to_id и HAVING created_at = MAX(created_at)
postgres требует засунуть все в group by
Сортируешь по времени последнего сообщения и все
ну смотри, мне же надо отсортировать еще пользователей, чтобы без дублей было
Тебе в принципе никто кроме текущего не нужен Так что нужно отфильтровать а не сортировать
Тогда можно посмотреть в сторону DISTINCT ON to_id или оконная функция (считать row_number() OVER (PARTITION BY to_id ORDER BY created_at DESC))
вот это штука выдает: window functions are not allowed in WHERE
В подзапрос надо оборачивать
Обсуждают сегодня