group by - MySQL - Looking for Top 10 records by Month -


मैं टेबल स्ट्रक्चर के साथ प्रस्तावना करूंगा:

revshare r: आदेश सहित कोई खरीद के लिए जानकारी शामिल है, बिक्री , कमीशन, मद, इवेंटडेट

उत्पाद पी: में एक पीआईडी ​​(उत्पाद आईडी) सहित एक उत्पाद की जानकारी शामिल है और व्यापारिक जानकारी प्राप्त करने के लिए व्यापारियों की मेज से जुड़ने के लिए उपयोग किया जाता है।

व्यापारी एम: में उस व्यापारी के बारे में जानकारी शामिल है जिसे उत्पाद से खरीदा गया था, जिसमें MerchantName भी शामिल है

प्रश्न

मैं शीर्ष 10 आईआईडीआईडी ​​के पुल को खींचने के लिए एक MySQL क्वेरी बनाने का प्रयास कर रहा हूं किसी दिए गए महीने के लिए आयोग की राशि के अनुसार आदेश। पूरे डेटा सेट मैं प्राप्त करना चाहते हैं 120 रिकॉर्ड (10 प्रति माह) हो जाएगी 2011-2013 तो हर साल से है।

मैं 1 महीने डेटा के लिए और एक के प्रयोग पर योजना बनाई खींचने के लिए एक प्रश्न बनाया प्रत्येक क्वेरी से 10 रिकॉर्ड्स के साथ एक रिकॉर्ड्स सूची बनाने के लिए यूनियन सब (प्रत्येक व्यक्तिगत क्वेरी, जो कि शीर्ष 10 मद आईडी का प्रतिनिधित्व करती है)।

Query1

यह क्वेरी सही मायने में शीर्ष 10 मद आईडी मुझे उन वस्तुओं की कुल कमी के आधार पर दिया जाता है।

  का चयन करें m.MerchantName, Count (r.OrderNo), sum (r.commission) रिवर्स से आरआईटीएमआईडी = पी। पीआईडी ​​के साथ पीएडीआईडी ​​पीएआईडीआईएमआईडी = एम.एम.आई.डी.ई.ई.ई.आई.ई.ई.टी.ई.ई.आई.ई.एम.आई.आई.एम.आई.एम. ORDER 3 डीईएससी LIMIT 10   

जब मैं इस क्वेरी को दूसरे के साथ करने की कोशिश करता हूं ताकि अगले महीने के लिए '2011-02-01' और '2011-02- 31 'मुझे मिल रहा है और त्रुटि' त्रुटि: यूनियन और ऑर्डर का गलत उपयोग "मुझे यह पता है क्योंकि जाहिरा तौर पर आप UNION'd क्वेरी के किसी भी सेट पर अंतिम क्रम का उपयोग नहीं कर सकते हैं लेकिन अंतिम मैं पूरी डेटा सेट में खींच सकता है और उसके बाद Excel या Pentaho द्विपक्षीय का उपयोग केवल शीर्ष 10 को दिखाने के लिए लेकिन यह है कि आय वितरण तालिका में बहुत बड़ा डेटा सेट के आधार पर कुशल नहीं है।

नीचे यूनियन सब के साथ क्वेरी है जो काम नहीं करता है

कोई भी मदद की बहुत सराहना की है। < ORDER BY स्टेटमेंट के कारण काम नहीं किया गया)

  का चयन करें m.MerchantName, Count (r.OrderNo), sum (r.commission) .itemid = पी। पीआईडी ​​छोड़ने वाले व्यापारिक एम पर पीएमआईडी = एम.एम.आई.डी.ए. आर.एन्टेंडेट '2011-01-01' और '2011-01-31' ग्रुप द्वारा आर.टी.एम.आई.डी. 3 डीईएससी की सीमा से 10 यूनियन सभी का चयन करें m.MerchantName, Count (r.OrderNo), sum (r.commission) से आरआरआईटीआईएमआईड = पी। पीआईडी ​​के साथ पीआरआईडीआईएमआईडी = एम.एम.आई.आई. '2011-02-01' और '2011-02-31' के बीच ग्रुप द्वारा आर.टी.एम.आई.डी. 3 डीईएससी की सीमा से 10    

ठीक है, यह प्रयास करें ....

  SELECT * FROM (SELECT m.MerchantName, Count (r.OrderNo), sum (r.commission) से आय वितरण के आर बायाँ शामिल हों उत्पाद पी पर r.itemid = p.PID बाईं तरफ के व्यापारी मीटर शामिल हों p.MID = एम.एम.आई.आई.डी.ई.ई.ए. के बीच '2011-01-01' और '2011-01-31' समूह के बीच आरआईटीमड आदेश द्वारा 3 डीईएससी की सीमा तक 10) RESULT1 यूनियन के रूप में सभी का चयन करें * से (चयन करें मी। मेरेंटनाम, गणना ( आर। ऑर्डर नोज़), राशि (आर कॉमर्स) से रिवर्सर आरएआईटीएमआईडी = पी। पीआईडी ​​के साथ पीईएमआई पीईएमआई पीईएमआईडी = एम.एम.आई.आई.डी.ई.ए.ई.ई.टी.ई.ई. और '2011/02/31' r.itemid आदेश द्वारा ग्रुप 3 DESC सीमा 10) के रूप में RESULT2     द्वारा

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

github - Teamcity & Git - PR merge builds - anyway to get HEAD commit hash? -

ios - Replace text in UITextView run slowly -