MySQL Неверное использование групповой функции на общем хосте - PullRequest
0 голосов
/ 16 сентября 2010

Мне нужно знать команду с наибольшим количеством совпадений в определенном городе.

SELECT COUNT(am_matches.team_id) AS matches_count,
am_matches.team_id AS team_id
FROM am_matches
LEFT JOIN am_team ON (am_matches.team_id = am_teams.id)
WHERE am_matches.status = '3' AND am_teams.city_id = '$city_id'
GROUP BY am_matches.team_id
ORDER BY COUNT(am_matches.team_id) DESC LIMIT 1

Это работает на локальном сервере (wamp), но на общем хосте выбрасывает "Неправильное использование групповой функции».Есть ли другой способ получить это?Мне нужно сделать много похожих запросов, поэтому я хотел бы узнать более читаемый подход к получению похожих значений.Спасибо.

1 Ответ

0 голосов
/ 30 апреля 2011

Вы можете заказать по "1", как сказано в комментарии, или вы можете использовать псевдоним столбца "match_count".Для ясности и читабельности желательно использовать псевдоним, а не числовой индекс.Вы бы только повторно вызывали группирующие функции в предложении HAVING, но не в ORDER.К тому времени, когда ORDER увидит ваши результаты, все данные собраны и просто отсортированы.

ORDER BY matches_count DESC LIMIT 1
...