sql查询使用聚合函数内部的情况

时间:2015-05-17 08:29:16

标签: sql join case aggregate-functions mariadb

我试图解决http://www.sqlzoo.net/wiki/The_JOIN_operation

上的#13

"列出每场比赛的每场比赛,如图所示。这将使用" CASE WHEN"在之前的任何练习中都没有解释过。"

这是我写的:

select distinct mdate, team1,
 case 
    when teamid = team1
      count(teamid)
 end as score1, team2,
 case 
    when teamid = team2
     count(teamid) 
 end as score2
from game join goal on id = matchid
group by matchid
order by mdate, matchid, team1, team2;

我收到此错误:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以获得正确的语法,以便将“计数(teamid)end”作为score1,team2,teamid = tea'在第4行

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

你在错误的轨道上使用案例条件并使用函数。下面的查询给你结果..检查并学习希望它会有所帮助

SELECT  game.mdate, 
        game.team1,
        SUM(CASE WHEN goal.teamid=game.team1 THEN 1 ELSE 0 END) score1, 
        game.team2,
        SUM(CASE WHEN goal.teamid=game.team2 THEN 1 ELSE 0 END) score2
FROM game
INNER JOIN goal 
    ON game.id=goal.matchid
GROUP BY game.mdate, goal.matchid, game.team1, game.team2
相关问题