हम पंक्ति के समूह को फ़िल्टर करने के लिए एसक्यूएल-क्वेरी में हैविंग क्लॉज का उपयोग करने में सक्षम हैं। जब हम ग्रुप बाय क्लॉज का उपयोग करते हैं तो यह सीधे इस तरह से काम करता है।हैविंग क्लॉज वास्तव में कैसे काम करता है?
लेकिन, चलो इस क्वेरी के लिए देखो:
select 1 where 1!=1 having count(*)=0;
(या Oracle के लिए 'दोहरी से' के साथ संलग्न)।
यदि वास्तव में समूह निस्पंदन करते हैं, तो हमारे पास कोई पंक्ति नहीं है, इसलिए हमारे पास कोई समूह नहीं है और परिणाम 'कोई पंक्ति चयनित नहीं' होनी चाहिए।
लेकिन पोस्टग्रेएसक्यूएल में, माईएसक्यूएल और ओरेकल में हमें क्वेरी के परिणामस्वरूप '1' मिलता है।
प्रश्न: हैविंग वास्तव में कैसे काम करता है?
एसक्यूएल परीक्षण के लिए फिडल: http://www.sqlfiddle.com/#!15/d5407/51
बेवकूफ तरीके से ... – jarlh
कहां वापसी 0 पंक्तियां, इसलिए हमारे पास पंक्तियों के 0 समूह हैं।यदि हैविंग केवल पंक्ति समूह निस्पंदन करते हैं, तो खाली इनपुट के लिए कुछ मूल्यांकन क्यों शुरू करें और करें? – potapuff