Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL वॉलीबॉल स्टैंडिंग

यह वही करना चाहिए जो आप चाहते हैं:

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 गेम हैं। यही कारण है कि मेरा आउटपुट आपके आउटपुट से अलग है।
  • आपने टीम आईडी से टीम के नाम प्राप्त करने के लिए तालिका प्रदान नहीं की है। अपने इच्छित प्रारूप में परिणाम प्राप्त करने के लिए बस टीम के नामों के साथ अपनी तालिका में शामिल हों।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रत्येक समूह से शीर्ष एन रिकॉर्ड का चयन कैसे करें MySql

  2. mysql प्रतिकृति फ़िल्टर करें (अनदेखा-डीबी)

  3. Mysql में ब्लॉब फ़ाइलें/छवियां अपलोड करना

  4. पायथन के लिए MySQL समर्थन जो जीपीएल-लाइक लाइसेंस के अंतर्गत नहीं है

  5. सिंगल टेक्स्टरेरा का उपयोग करके mysql में एकाधिक ईमेल डालें