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

अधिकतम मूल्य और संबंधित कॉलम प्राप्त करें

इस क्वेरी को वह मिलना चाहिए जो आपको चाहिए:

SELECT
    player_id, game_id, score
FROM
(
    SELECT game_id,MAX(score) AS MaxScore
    FROM games
    GROUP BY game_id
) AS Winners
JOIN games
    ON (games.game_id = Winners.game_id AND games.score = Winners.MaxScore)

यह मानता है कि एक टाई दोनों खिलाड़ियों के लिए एक जीत है।

SQLFiddle

यदि आप केवल खिलाड़ी और उनकी जीत की संख्या प्राप्त करना चाहते हैं, तो आप इस क्वेरी का उपयोग कर सकते हैं:

SELECT
    player_id, COUNT(*) AS wins
FROM
(
    SELECT game_id,MAX(score) AS MaxScore
    FROM games
    GROUP BY game_id
) AS Winners
JOIN games
    ON (games.game_id = Winners.game_id AND games.score = Winners.MaxScore)
WHERE player_id = {player_id}
GROUP BY player_id

बस {player_id} replace को बदलें उस खिलाड़ी के साथ जिसे आप ढूंढ रहे हैं और wins उनकी जीत या टाई की संख्या है।




  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. sqlalchemy + फ्लास्क, दिन के हिसाब से सभी पोस्ट प्राप्त करना

  3. मैं MySQL में एकाधिक कॉलम के लिए अद्वितीय बाधा कैसे निर्दिष्ट करूं?

  4. PHP MySQL का उपयोग करके श्रेणी पदानुक्रम (क्रम में)

  5. mysql त्रुटि:तालिका mysql.innodb_table_stats नहीं मिली