सबसे पहले आपको यह जानना होगा कि एक अस्थायी तालिका बनाना बिल्कुल संभव समाधान है। लेकिन मामलों में कोई अन्य विकल्प लागू नहीं होता है जो यहाँ सत्य नहीं है!
आपके मामले में, आप अपनी क्वेरी को FrankPl . के रूप में आसानी से बढ़ा सकते हैं इंगित किया गया क्योंकि आपकी उप-क्वेरी और मुख्य-क्वेरी दोनों एक ही क्षेत्र द्वारा समूहीकृत हैं। तो आपको किसी उप-प्रश्न की आवश्यकता नहीं है। मैं पूर्णता के लिए FrankPl के समाधान को कॉपी और पेस्ट करने जा रहा हूँ:
SELECT o.property_B, SUM(o.score1), SUM(o.score2)
FROM o
GROUP BY property_B;
फिर भी इसका मतलब यह नहीं है कि ऐसे परिदृश्य में आना असंभव है जिसमें आप चाहते हैं कि आप एक उप-क्वेरी को अनुक्रमित कर सकें। जिन मामलों में आपके पास दो विकल्प हैं, पहला अस्थायी तालिका का उपयोग कर रहा है जैसा कि आपने स्वयं को इंगित किया है, उप-क्वेरी के परिणाम धारण कर रहा है। यह समाधान फायदेमंद है क्योंकि यह लंबे समय से MySQL द्वारा समर्थित है। यदि बड़ी मात्रा में डेटा शामिल है तो यह संभव नहीं है।
[अद्यतन]
प्रश्न के संपादित संस्करण के लिए मैं निम्नलिखित समाधान की सिफारिश करूंगा:
SELECT o.property_B, SUM(IF(o.property_A = 'specific_A', o.score1, 0)), SUM(o.score2)
FROM o
GROUP BY property_B
HAVING SUM(IF(o.property_A = 'specific_A', o.score1, 0)) > 0;
लेकिन आपको HAVING
. पर काम करने की जरूरत है अंश। आपको अपनी वास्तविक समस्या के अनुसार इसे बदलने की आवश्यकता हो सकती है।