Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्या आप सबक्वायरी इंडेक्स कर सकते हैं?

सबसे पहले आपको यह जानना होगा कि एक अस्थायी तालिका बनाना बिल्कुल संभव समाधान है। लेकिन मामलों में कोई अन्य विकल्प लागू नहीं होता है जो यहाँ सत्य नहीं है!

आपके मामले में, आप अपनी क्वेरी को FrankPl . के रूप में आसानी से बढ़ा सकते हैं इंगित किया गया क्योंकि आपकी उप-क्वेरी और मुख्य-क्वेरी दोनों एक ही क्षेत्र द्वारा समूहीकृत हैं। तो आपको किसी उप-प्रश्न की आवश्यकता नहीं है। मैं पूर्णता के लिए FrankPl के समाधान को कॉपी और पेस्ट करने जा रहा हूँ:

SELECT o.property_B, SUM(o.score1), SUM(o.score2)
FROM o
GROUP BY property_B;

फिर भी इसका मतलब यह नहीं है कि ऐसे परिदृश्य में आना असंभव है जिसमें आप चाहते हैं कि आप एक उप-क्वेरी को अनुक्रमित कर सकें। जिन मामलों में आपके पास दो विकल्प हैं, पहला अस्थायी तालिका का उपयोग कर रहा है जैसा कि आपने स्वयं को इंगित किया है, उप-क्वेरी के परिणाम धारण कर रहा है। यह समाधान फायदेमंद है क्योंकि यह लंबे समय से MySQL द्वारा समर्थित है। यदि बड़ी मात्रा में डेटा शामिल है तो यह संभव नहीं है।

दूसरा समाधान MySQL संस्करण 5.6 या इसके बाद के संस्करण का उपयोग कर रहा है। /ए> . 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 . पर काम करने की जरूरत है अंश। आपको अपनी वास्तविक समस्या के अनुसार इसे बदलने की आवश्यकता हो सकती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. लार्वा क्वेरी में कोलेट कैसे जोड़ें

  2. एक साथ कई थ्रेड्स से MySQL को कैसे एक्सेस करें

  3. चेकबॉक्स इनपुट PHP फॉर्म से एक आईडी MySQL में एकाधिक आइटम डालें

  4. जब मेरी परियोजना पर कोई इकाई नहीं है, तो पीओजेओ में मूल क्वेरी को कैसे मैप करें?

  5. MySQL डेटाबेस से कैसे कनेक्ट करें