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 не позволяют этот синтаксис