Таблица сообщений, откуда я хочу получить последние контакты для 'user1', теперь таблица выглядит так:
| id | receiver | sender | time |
|----|----------|--------|------------|
| 1 | user1 | host1 | 2020-07-02 |
| 2 | host2 | user1 | 2020-07-03 |
| 3 | user3 | host3 | 2020-07-04 |
Мне удалось получить ожидаемый результат, используя mysql:
SELECT CASE WHEN receiver = 'user1' THEN sender ELSE receiver END AS id, max(time) AS time
FROM message WHERE receiver = 'user1' OR sender = 'user1'
GROUP BY CASE WHEN receiver = 'user1' THEN sender ELSE receiver END;
Но когда я запускаю этот запрос на postgres, я получаю сообщение об ошибке: Postgresql error: получатель столбца должен появиться в предложении GROUP BY или использоваться в агрегатной функции. Любое решение для решения этой проблемы?