Я пытаюсь написать запрос в PostgreSQL, и я немного расстроен, потому что он работает в других движках баз данных. Мне нужно выбрать 5 лучших пользователей из данной таблицы соединений следующим образом:
SELECT users.*,
COUNT(deals.id) AS num_deals
FROM users, deals
WHERE deals.users_id = users.id
GROUP BY users.id
ORDER BY num_deals LIMIT 5;
Мне нужны 5 лучших пользователей. Этот код работает в sqlite, mysql и т. Д., Но PostgreSQL отказывается выбирать дополнительные поля, которые не используются в агрегатных функциях. Я получаю следующую ошибку:
PGError: ERROR: column "users.id" must appear in the GROUP BY clause or be used in an aggregate function
Как я могу сделать это в PostgreSQL ??