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

MySQL में MAX का उपयोग कैसे करें?

आप ORDER BY . को मिलाकर एक पंक्ति का सारा डेटा प्राप्त कर सकते हैं और LIMIT 1 . आपके मामले में, इसका दो बार उपयोग करना और UNION . के साथ संयोजन करना :

  ( SELECT * 
    FROM person 
    WHERE gender = 'Male'
    ORDER BY age DESC
    LIMIT 1
  )
UNION ALL
  ( SELECT * 
    FROM person 
    WHERE gender = 'Female'
    ORDER BY age DESC
    LIMIT 1
  )

दूसरा तरीका है पुरुषों और महिलाओं की अधिकतम आयु (उपश्रेणियों के साथ):

SELECT *
FROM person
WHERE ( gender = 'Male'
      AND age =  
          ( SELECT MAX(age) 
            FROM person 
            WHERE gender = 'Male'
          )
      )
   OR ( gender = 'Female'
      AND age =  
          ( SELECT MAX(age) 
            FROM person 
            WHERE gender = 'Female'
          )
      )

यदि आपके पास 2 से अधिक लिंग हैं या यदि आप हार्डकोड नहीं करना चाहते हैं Male और Female क्वेरी में स्थिरांक, इसे इस प्रकार फिर से लिखा जा सकता है:

SELECT p.*
FROM person AS p
  JOIN
      ( SELECT gender
             , MAX(age) AS maxage 
        FROM person 
        GROUP BY gender
      ) AS pg
    ON  pg.gender = p.gender
    AND pg.maxage = p.age

उपरोक्त प्रश्नों में मुख्य अंतर है। पहला आपको केवल एक पुरुष और केवल एक महिला परिणाम देगा (अधिकतम)। दूसरी और तीसरी क्वेरी आपको एक से अधिक देगी जब समान अधिकतम आयु वाले और समान रूप से महिलाओं के लिए कई (पुरुष) हों।

(gender, age) . पर एक इंडेक्स किसी भी प्रश्न में मदद करेगा।



  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 8 पासवर्ड के साथ नया उपयोगकर्ता बनाएं जो काम नहीं कर रहा है

  2. मैं एक MySQL खोज कैसे लिख सकता हूं जो गलत वर्तनी वाले डेटा की भरपाई कर सके?

  3. लेवेनशेटिन:MySQL + PHP

  4. SELECT और WHERE क्लॉज में संग्रहीत फ़ंक्शन कॉल को ऑप्टिमाइज़ करना

  5. MongoDB या अन्य दस्तावेज़ उन्मुख डेटाबेस सिस्टम का उपयोग कब करें?