आप कर सकते हैं GROUP BY
. का उपयोग करें , लेकिन यह समझना महत्वपूर्ण है कि यह कैसे काम करता है।
जब आप GROUP BY
. का उपयोग करते हैं पंक्तियों के एक समूह को एक में संक्षिप्त कर दिया गया है और अन्य स्तंभों में क्या प्रदर्शित किया गया है जो आपके GROUP BY
में उपयोग नहीं किए गए हैं खंड, या तो कुल कार्यों का उपयोग करके निर्धारित किया जाता है या यह उस समूह से एक यादृच्छिक पंक्ति है। आप सुनिश्चित नहीं कर सकते कि MAX()
. को पकड़े हुए प्रदर्शित पंक्ति के अनुरूप पंक्ति प्राप्त करें value या जो भी समग्र कार्य आपने उपयोग किया है। यह विशेष रूप से स्पष्ट हो जाता है, जब आप कोई प्रश्न करते हैं जैसे:
SELECT id, MIN(whatever), MAX(whatever), another_column
FROM your_table
GROUP BY id
"another_column" MIN() मान या MAX() मान रखने वाली पंक्ति से संबंधित हो सकता है या यहां तक कि किसी अन्य पंक्ति से भी संबंधित हो सकता है जो बिल्कुल भी प्रदर्शित नहीं होती है। MySQL के अलावा अन्य RDBMS में वास्तव में उन स्तंभों का चयन करने की मनाही है जो एक समग्र फ़ंक्शन का उपयोग नहीं करते हैं या GROUP BY
में सूचीबद्ध नहीं हैं। खंड, केवल यह रोकने के लिए कि उपयोगकर्ता गलती करते हैं या सोचते हैं कि उन्हें सही परिणाम मिला है।
तो, आपके मामले में आप कॉलम "मान" भी प्रदर्शित करना चाहते हैं। उपरोक्त कारणों से, juergen_d का उत्तर गलत है, क्योंकि यह "मान" का चयन नहीं करता है, और यदि ऐसा होता है, तो आप सुनिश्चित नहीं हो सकते कि यह सही "मान" है। फ़िलिप सिल्वा का उत्तर गलत है, क्योंकि यह "मूल्य" द्वारा समूहित होता है। ऐसा करने से आपके मामले में वास्तव में पूरी तालिका वापस आ जाएगी। रोमेश का उत्तर गलत है, क्योंकि MAX()
. का दो गुना उपयोग करना फ़ंक्शन आपको अधिकतम मान प्राप्त करेगा, स्पष्ट रूप से लेकिन डेटाटाइम मान के अनुरूप मान नहीं।
तो, आपको यह कैसे करना है? यहां 3 तरीके बताए गए हैंए> . उन्हें स्वयं लागू करके सीखें। यह इतना कठिन नहीं है :)