Điều này sẽ làm những gì bạn muốn:
SELECT
team_id,
COUNT(*) AS GP,
SUM(is_win) AS Wins,
SUM(NOT is_win) AS Losses,
2 * SUM(is_win) + SUM(NOT is_win) AS Points
FROM
(
SELECT
home_team_id AS team_id,
home_score > visit_score AS is_win
FROM results
WHERE tcl_id = 68
UNION ALL
SELECT
visit_team_id AS team_id,
home_score < visit_score AS is_win
FROM results
WHERE tcl_id = 68
) T1
GROUP BY team_id
ORDER BY Points DESC
Đầu ra cho dữ liệu mẫu của bạn:
4, 3, 2, 1, 5
3, 3, 2, 1, 5
1, 3, 1, 2, 4
2, 3, 1, 2, 4
Ghi chú:
- Dữ liệu mẫu của bạn dường như không khớp với kết quả mong đợi của bạn - dữ liệu thử nghiệm của bạn chỉ có 6 trò chơi được chơi, nhưng đầu ra dự kiến của bạn có 8 trò chơi. Đây là lý do tại sao đầu ra của tôi khác với đầu ra của bạn.
- Bạn chưa cung cấp bảng để lấy tên nhóm từ id nhóm. Chỉ cần tham gia vào bảng của bạn với tên đội để nhận kết quả ở định dạng bạn muốn.