SQL Query не показывает ожидаемый результат

Итак, я создаю интеграцию script, но по какой-то причине ее не показывая исчисленный результат. Мой запрос

SELECT xf_user_group_relation.user_id, xf_user_group_relation.user_group_id, MAX( xf_user_group.display_style_priority ) AS display_style_priority
FROM xf_user_group_relation
INNER JOIN xf_user_group ON xf_user_group_relation.user_group_id = xf_user_group.user_group_id
WHERE xf_user_group.display_style_priority >=1000
GROUP BY user_id

Одна из строк неожиданного результата - это

user_id | user_group_id | display_style_priority    
86 | 11 |5200

Группа с id 11 имеет display_style_priority 2000, а не 5200. Она должна показывать идентификатор группы пользователей с display_style_priority 5200. Это самый высокий рейтинг группы, в которой находится этот пользователь. Может кто-нибудь указать, что я делаю неправильно.

Ответы

Ответ 1

Попробуйте изменить GROUP BY на

GROUP BY
   xf_user_group_relation.user_id, xf_user_group_relation.user_group_id

Большинство других СУБД будут вызывать ошибку для этого запроса, потому что каждый столбец в списке SELECT должен быть либо агрегирован, либо в GROUP BY.

Изменить: это отличный пример того, почему ANSI-SQL и другие RDBMS не позволяют этот синтаксис