0

我需要知道某个城市比赛次数最多的球队。

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),但在共享主机上会抛出“无效使用组功能”。还有其他方法可以得到这个吗?我需要做很多类似的查询,所以我想知道一种更易读的方法来获取类似的值。谢谢。

4

1 回答 1

0

您可以按照评论所述按“1”排序,也可以使用列别名“matches_count”。为了清晰和可读性,最好使用别名,而不是数字索引。您只会在 HAVING 子句中重新调用分组函数,而不是在 ORDER 中。当 ORDER 看到您的结果时,数据已全部组装完毕并进行排序。

ORDER BY matches_count DESC LIMIT 1
于 2011-04-29T23:44:52.810 回答