GROUP BY
विशिष्ट . में प्रत्येक विशिष्ट मान के अनुसार पंक्तियों के समूहों को एक पंक्ति में मैप करता है कॉलम, जो जरूरी नहीं कि चयन-सूची में हों।
SELECT b, c, d FROM table1 GROUP BY a;
यह क्वेरी कानूनी SQL है (सुधार: केवल MySQL में; वास्तव में यह मानक एसक्यूएल नहीं है और अन्य ब्रांडों द्वारा समर्थित नहीं है)। MySQL इसे स्वीकार करता है, और यह भरोसा करता है कि आप जानते हैं कि आप क्या कर रहे हैं, b
. का चयन करके , c
, और d
एक स्पष्ट तरीके से क्योंकि वे a
. की कार्यात्मक निर्भरताएं हैं .
हालाँकि, Microsoft SQL सर्वर और अन्य ब्रांड इस क्वेरी की अनुमति नहीं देते हैं, क्योंकि यह कार्यात्मक निर्भरता को आसानी से निर्धारित नहीं कर सकता है। संपादित करें: इसके बजाय, मानक SQL के लिए आपको एकल-मान नियम . का पालन करना होगा , यानी चयन-सूची के प्रत्येक कॉलम का नाम या तो GROUP BY
में होना चाहिए क्लॉज या फिर सेट फंक्शन के लिए एक तर्क हो।
जबकि DISTINCT
हमेशा चयन-सूची के सभी स्तंभों और केवल उन स्तंभों को देखता है। यह एक आम गलत धारणा है कि DISTINCT
आपको कॉलम निर्दिष्ट करने की अनुमति देता है:
SELECT DISTINCT(a), b, c FROM table1;
कोष्ठक बनाने के बावजूद DISTINCT
फ़ंक्शन कॉल की तरह दिखें, ऐसा नहीं है। यह एक क्वेरी विकल्प है और चयन-सूची के तीन क्षेत्रों में से किसी एक में एक विशिष्ट मान क्वेरी परिणाम में एक अलग पंक्ति की ओर ले जाएगा। इस चयन-सूची के किसी एक व्यंजक के चारों ओर कोष्ठक हैं, लेकिन यह परिणाम को प्रभावित नहीं करेगा।