-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathJoin.sql
More file actions
84 lines (55 loc) · 1.74 KB
/
Join.sql
File metadata and controls
84 lines (55 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
-- #1
SELECT matchid, player FROM goal WHERE teamid = 'GER';
-- #2
-- returns 3
SELECT id,stadium,team1,team2
FROM game JOIN goal ON goal.matchid = game.id WHERE game.id = 1012;
-- don't even need JOIN
SELECT id,stadium,team1,team2
FROM game WHERE id = 1012;
-- #3
SELECT player,teamid,stadium, mdate
FROM game JOIN goal ON (id=matchid) WHERE teamid = 'GER';
-- #4
SELECT team1, team2, player
FROM game JOIN goal ON (id=matchid) WHERE player LIKE 'Mario%';
-- #5
SELECT player, teamid, coach, gtime
FROM goal JOIN eteam on teamid=id
WHERE gtime <= 10;
-- #6
SELECT mdate, teamname FROM game JOIN eteam ON (team1=eteam.id) WHERE coach = 'Fernando Santos';
-- #7
SELECT player
FROM game JOIN goal ON (id=matchid) WHERE stadium = 'National Stadium, Warsaw';
-- #8
SELECT DISTINCT player
FROM game JOIN goal ON matchid = id
WHERE (team1='GER' OR team2='GER') AND goal.teamid != 'GER';
-- #9
SELECT teamname, COUNT(*)
FROM eteam JOIN goal ON id=teamid
GROUP BY teamname;
-- #10
SELECT stadium, COUNT(*) FROM game JOIN goal ON game.id = goal.matchid
GROUP BY stadium;
-- #11
SELECT matchid, mdate, COUNT(player)
FROM goal JOIN game ON matchid = id
WHERE (team1 = 'POL' OR team2 = 'POL')
GROUP BY matchid, mdate;
-- #12
SELECT matchid, mdate, COUNT(player)
FROM goal JOIN game ON matchid = id
WHERE (team1 = 'GER' OR team2 = 'GER') AND teamid = 'GER'
GROUP BY matchid, mdate;
-- #13
-- Need LEFT JOIN to get 0-0 games
-- Not mentioned in directions
SELECT game.mdate, game.team1,
SUM(CASE WHEN goal.teamid = game.team1 THEN 1 ELSE 0 END) AS score1,
game.team2,
SUM(CASE WHEN goal.teamid = game.team2 THEN 1 ELSE 0 END) AS score2
FROM game LEFT JOIN goal ON matchid = id
GROUP BY game.id,game.mdate, game.team1, game.team2
ORDER BY mdate,team1,team2