ろくろ猫のブログ

しがない会社員の備忘log

【SQL練習】【SQLZOO】 6 JOIN

6 JOIN

f:id:rokuroneko:20210530121716j:plain

問題はこちらです。
The JOIN operation/ja - SQLZOO



以下が解答となります。

JOIN と UEFA EURO 2012

1.

【解答】
f:id:rokuroneko:20210616201952p:plain

SELECT matchid, player
FROM goal WHERE teamid = 'GER';


2.

【解答】
f:id:rokuroneko:20210616202154p:plain

SELECT id,stadium,team1,team2
FROM game WHERE id = 1012;


3.

【解答】
f:id:rokuroneko:20210616202418p:plain

SELECT player, teamid, stadium, mdate 
FROM game JOIN goal ON (id=matchid) 
WHERE teamid = 'GER';


4.

【解答】
f:id:rokuroneko:20210616202517p:plain

SELECT team1, team2 , player
FROM game JOIN goal ON (id=matchid) 
WHERE player LIKE 'Mario%';


5.

【解答】
f:id:rokuroneko:20210616202723p:plain

SELECT player, teamid, coach, gtime
FROM goal JOIN eteam ON teamid = id
WHERE gtime <= 10;


6.

【解答】
f:id:rokuroneko:20210616202808p:plain

SELECT mdate, teamname
FROM game JOIN eteam ON team1 = eteam.id
WHERE coach = 'Fernando Santos';


7.

【解答】
f:id:rokuroneko:20210616202858p:plain

SELECT player
FROM game JOIN goal ON id = goal.matchid
WHERE stadium = 'National Stadium, Warsaw';


8.

【解答】
f:id:rokuroneko:20210616202953p:plain

SELECT DISTINCT player
FROM game JOIN goal ON id = goal.matchid
WHERE (team1 = 'GER' OR team2 = 'GER')
AND goal.teamid != 'GER';


9.

【解答】
f:id:rokuroneko:20210616203039p:plain

SELECT teamname, COUNT(1)
FROM eteam JOIN goal ON id = teamid
GROUP BY teamname;


10.

【解答】
f:id:rokuroneko:20210616203121p:plain

SELECT stadium, COUNT(1)
FROM game JOIN goal ON id = matchid
GROUP BY stadium;


11.

【解答】
f:id:rokuroneko:20210616203205p:plain

SELECT matchid, mdate, COUNT(1)
FROM game JOIN goal ON matchid = id 
WHERE (team1 = 'POL' OR team2 = 'POL')
GROUP BY matchid, mdate;


12.

【解答】
f:id:rokuroneko:20210616203250p:plain

SELECT matchid, mdate, COUNT(1)
FROM game JOIN goal ON matchid = id 
WHERE (team1 = 'GER' OR team2 = 'GER')  
AND teamid = 'GER' GROUP BY matchid, mdate;


13.

【解答】
f:id:rokuroneko:20210616203442p:plain

SELECT mdate, 
team1, SUM(CASE WHEN teamid = team1 THEN 1 ELSE 0 END) AS score1, 
team2, SUM(CASE WHEN teamid = team2 THEN 1 ELSE 0 END) AS score2 
FROM game 
LEFT JOIN goal ON id = matchid
GROUP BY id, game.mdate, goal.matchid, game.team1, game.team2
ORDER BY mdate, matchid, team1, team2