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

MySQL मैक्स फ़ंक्शन मिक्सिंग रो

आपको एक GROUP BY चाहिए कुल के साथ क्लॉज MAX() . MySQL आपको इसे छोड़ने की अनुमति देता है (जहां अन्य आरडीबीएमएस त्रुटियों की रिपोर्ट करेगा) लेकिन अनिश्चित परिणामों के साथ, जो आप देख रहे हैं। इसे एक सबक्वेरी में शामिल करके नियंत्रित किया जा सकता है जो समूहित rev . लौटाता है प्रति id

SELECT 
  r.id,
  r.state,
  maxrev.rev
FROM
  VIEW_data r
  /* INNER JOIN against subquery which returns MAX(rev) per id only */
  JOIN (
    SELECT id, MAX(rev) AS rev
    FROM VIEW_data GROUP BY id
  /* JOIN is on both id and rev to pull the correct value for state */
  ) maxrev  ON r.id = maxrev.id AND r.rev = maxrev.rev
WHERE r.id = 1

http://sqlfiddle.com/#!2/4f651/8

उपरोक्त अधिकतम rev . लौटाएगा किसी भी id . के लिए मान . अगर आप निश्चित हैं आपको WHERE . द्वारा फ़िल्टर की गई केवल एक पंक्ति की आवश्यकता है MAX() . के बजाय क्लॉज प्रति समूह, दूसरे उत्तर को देखें जो ORDER BY . का उपयोग करता है और LIMIT



  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. पीएचपी बल्क इंसर्ट फॉरच

  3. क्या MySQL में विदेशी कुंजियों का परिचय प्रदर्शन को कम करता है

  4. डेटाबेस से लौटाई गई तिथियों में अंतराल भरना - शुद्ध एसक्यूएल समाधान संभव है?

  5. मुझे कैसे पता चलेगा कि मेरा डॉकटर mysql कंटेनर कब चालू है और mysql प्रश्न लेने के लिए तैयार है?