add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE TEAMS AS
SELECT 10 AS TEAM_ID, 'Give' AS TEAM_NAME UNION ALL
SELECT 20, 'Never' UNION ALL
SELECT 30, 'You' UNION ALL
SELECT 40, 'Up' UNION ALL
SELECT 50, 'Gonna';
Records: 5  Duplicates: 0  Warnings: 0
SELECT * FROM TEAMS
TEAM_ID TEAM_NAME
10 Give
20 Never
30 You
40 Up
50 Gonna
CREATE TABLE MATCHES AS
SELECT 1 AS MATCH_ID, 30 AS HOST_TEAM, 20 AS GUEST_TEAM, 1 AS HOST_GOALS, 0 AS GUEST_GOALS UNION ALL
SELECT 2, 10, 20, 1, 2 UNION ALL
SELECT 3, 20, 50, 2, 2 UNION ALL
SELECT 4, 10, 30, 1, 0 UNION ALL
SELECT 5, 30, 50, 0, 1;
Records: 5  Duplicates: 0  Warnings: 0
SELECT * FROM MATCHES
MATCH_ID HOST_TEAM GUEST_TEAM HOST_GOALS GUEST_GOALS
1 30 20 1 0
2 10 20 1 2
3 20 50 2 2
4 10 30 1 0
5 30 50 0 1
WITH cteHostPoints AS (SELECT HOST_TEAM AS TEAM,
CASE
WHEN HOST_GOALS > GUEST_GOALS THEN 3
WHEN HOST_GOALS = GUEST_GOALS THEN 1
ELSE 0
END AS POINTS
FROM MATCHES),
cteGuestPoints AS (SELECT GUEST_TEAM AS TEAM,
CASE
WHEN GUEST_GOALS > HOST_GOALS THEN 3
WHEN GUEST_GOALS = HOST_GOALS THEN 1
ELSE 0
END AS POINTS
FROM MATCHES),
cteAllPoints AS (SELECT TEAM, POINTS FROM cteHostPoints
UNION ALL
SELECT TEAM, POINTS FROM cteGuestPoints)
SELECT t.TEAM_ID, t.TEAM_NAME, COALESCE(SUM(ap.POINTS), 0) AS TOTAL_POINTS
FROM TEAMS t
LEFT OUTER JOIN cteAllPoints ap
ON ap.TEAM = t.TEAM_ID
GROUP BY t.TEAM_ID, t.TEAM_NAME
ORDER BY COALESCE(SUM(POINTS), 0) DESC, t.TEAM_ID
TEAM_ID TEAM_NAME TOTAL_POINTS
20 Never 4
50 Gonna 4
10 Give 3
30 You 3
40 Up 0