SELECT player.name,player.handicap,
SUM(tournament_player.points) as total_points,
COUNT(tournament_player.player_id) as attendances
FROM player
INNER JOIN tournament_player ON player.id=tournament_player.player_id
GROUP BY player.id
ORDER BY SUM(tournament_player.points) DESC
以上工作完美,但它也选择没有积分的球员。即它们的总点数等于0
如何添加这样的WHERE子句
WHERE SUM(tournament_player.points) > 0
无论我把条款放在哪里,它总是给我一个WHERE子句附近的错误:(
SELECT player.name,player.handicap,
SUM(tournament_player.points) as total_points,
COUNT(tournament_player.player_id) as attendances
FROM player
INNER JOIN tournament_player ON player.id=tournament_player.player_id
GROUP BY player.id
WHERE SUM(tournament_player.points) > 0
ORDER BY SUM(tournament_player.points) DESC
- 更新 -
谢谢你们俩!不知道HAVING条款。工作声明:
SELECT player.name,player.handicap,
SUM(tournament_player.points) as total_points,
COUNT(tournament_player.player_id) as attendances
FROM player
INNER JOIN tournament_player ON player.id=tournament_player.player_id
GROUP BY player.id
HAVING SUM(tournament_player.points) > 0
ORDER BY SUM(tournament_player.points) DESC
使用聚合列时,您需要使用HAVING
。
SELECT player.name,player.handicap,
SUM(tournament_player.points) as total_points,
COUNT(tournament_player.player_id) as attendances
FROM player
INNER JOIN tournament_player ON player.id=tournament_player.player_id
GROUP BY player.id
HAVING SUM(tournament_player.points) > 0
ORDER BY SUM(tournament_player.points) DESC