यदि हमारे पास तालिका में एक अद्वितीय स्तंभ (या स्तंभों का सेट) है, तो हम GROUP BY
में एक और व्यंजक जोड़ सकते हैं .
collection_id
. होने पर व्यंजक को प्रत्येक पंक्ति के लिए एक अद्वितीय मान लौटाने की आवश्यकता होती है शून्य है। अन्यथा, यह एक स्थिरांक लौटाता है।
मान लें कि हमारे पास एक अद्वितीय id
है तालिका में कॉलम, तो हम कुछ ऐसा कर सकते हैं:
... GROUP BY collection_id, IF(collection_id IS NULL, id, 0)
GROUP BY
. में वह दूसरी अभिव्यक्ति एक स्थिर मान देता है 0
जब collection_id
निरर्थक नहीं है। लेकिन जब संग्रह_आईडी शून्य है तो यह प्रत्येक पंक्ति के लिए एक अद्वितीय मान देता है।
ध्यान दें कि id
यहां केवल एक कॉलम का संदर्भ दिया गया है जिसे तालिका के भीतर अद्वितीय होने के लिए परिभाषित किया गया है। प्राथमिक कुंजी एक अच्छा उम्मीदवार है। यदि हमारे पास एक कॉलम पर एक अद्वितीय अनुक्रमणिका नहीं है, तो हम अपनी अनूठी बाधा में प्रत्येक कॉलम के लिए या प्रत्येक पंक्ति पर अद्वितीय होने की गारंटी वाले अभिव्यक्तियों के किसी भी सेट के लिए इसी प्रकार की अभिव्यक्ति दोहरा सकते हैं।
... GROUP BY collection_id
, IF(collection_id IS NULL, col1, '')
, IF(collection_id IS NULL, col2, NULL)
, IF(collection_id IS NULL, col3, collection_id)
वैकल्पिक रूप से, हम एक अभिव्यक्ति का उपयोग कर सकते हैं जो एक अद्वितीय मूल्य उत्पन्न करता है:
... GROUP BY IFNULL(collection_id,UUID())