[英]sql query using aggregate function inside case
我正在嘗試在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服務器版本相對應的手冊以獲取正確的語法,以在第4行的'count(teamid)末尾附近使用score1,team2,當teamid = tea時
我的代碼有什么問題?
您在使用案例條件和使用函數的情況下走錯了路。.下面的查詢給您結果..檢查並了解希望有幫助
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.