-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2988.sql
28 lines (28 loc) · 1.15 KB
/
2988.sql
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
SELECT t.name,
COUNT(m.id) AS matches,
SUM(CASE
WHEN m.team_1 = t.id AND m.team_1_goals > m.team_2_goals THEN 1
WHEN m.team_2 = t.id AND m.team_2_goals > m.team_1_goals THEN 1
ELSE 0
END) AS victories,
SUM(CASE
WHEN m.team_1 = t.id AND m.team_1_goals < m.team_2_goals THEN 1
WHEN m.team_2 = t.id AND m.team_2_goals < m.team_1_goals THEN 1
ELSE 0
END) AS defeats,
SUM(CASE
WHEN m.team_1 = t.id AND m.team_1_goals = m.team_2_goals THEN 1
WHEN m.team_2 = t.id AND m.team_2_goals = m.team_1_goals THEN 1
ELSE 0
END) AS draws,
SUM(CASE
WHEN m.team_1 = t.id AND m.team_1_goals > m.team_2_goals THEN 3
WHEN m.team_2 = t.id AND m.team_2_goals > m.team_1_goals THEN 3
WHEN m.team_1 = t.id AND m.team_1_goals = m.team_2_goals THEN 1
WHEN m.team_2 = t.id AND m.team_2_goals = m.team_1_goals THEN 1
ELSE 0
END) AS score
FROM teams t
LEFT JOIN matches m ON t.id IN (m.team_1, m.team_2)
GROUP BY t.id
ORDER BY score DESC;