यह वही करना चाहिए जो आप चाहते हैं:
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
आपके उदाहरण डेटा के लिए आउटपुट:
4, 3, 2, 1, 5
3, 3, 2, 1, 5
1, 3, 1, 2, 4
2, 3, 1, 2, 4
नोट:
- आपका उदाहरण डेटा आपके अपेक्षित आउटपुट से मेल नहीं खाता है - आपके परीक्षण डेटा में केवल 6 गेम खेले गए हैं, लेकिन आपके अपेक्षित आउटपुट में 8 गेम हैं। यही कारण है कि मेरा आउटपुट आपके आउटपुट से अलग है।
- आपने टीम आईडी से टीम के नाम प्राप्त करने के लिए तालिका प्रदान नहीं की है। अपने इच्छित प्रारूप में परिणाम प्राप्त करने के लिए बस टीम के नामों के साथ अपनी तालिका में शामिल हों।