ऊपर दिए गए सभी उत्तर सही हैं, एक कॉलम पर एक समूह बनाम ग्रुप BY पर DISTINCT के मामले के लिए। हर डीबी इंजन का अपना कार्यान्वयन और अनुकूलन होता है, और यदि आप बहुत कम अंतर (ज्यादातर मामलों में) की परवाह करते हैं, तो आपको विशिष्ट सर्वर और विशिष्ट संस्करण के खिलाफ परीक्षण करना होगा! जैसा कि कार्यान्वयन बदल सकते हैं ...
लेकिन, यदि आप क्वेरी में एक से अधिक कॉलम चुनते हैं, तो DISTINCT अनिवार्य रूप से अलग है! क्योंकि इस मामले में यह सभी पंक्तियों के सभी स्तंभों की तुलना करेगा, बजाय केवल एक कॉलम के।
तो अगर आपके पास कुछ ऐसा है:
// This will NOT return unique by [id], but unique by (id,name)
SELECT DISTINCT id, name FROM some_query_with_joins
// This will select unique by [id].
SELECT id, name FROM some_query_with_joins GROUP BY id
यह सोचना एक सामान्य गलती है कि DISTINCT कीवर्ड आपके द्वारा निर्दिष्ट पहले कॉलम द्वारा पंक्तियों को अलग करता है, लेकिन DISTINCT इस तरह से एक सामान्य कीवर्ड है।
इसलिए आपको उन लोगों से सावधान रहना होगा जो ऊपर दिए गए उत्तरों को सभी मामलों के लिए सही नहीं मान सकते हैं ... आप भ्रमित हो सकते हैं और गलत परिणाम प्राप्त कर सकते हैं, जबकि आप जो चाहते थे वह सभी को अनुकूलित करना था!