mysql - SQL To Find Most Popular Category -


मेरे पास मेरे डीबी (MySQL) में 3 टेबल हैं।

  श्रेणियां (नाम: स्ट्रिंग  

तो एक श्रेणी में कई आइटम हैं, और एक आइटम में कई वोट हैं I

मैं सबसे लोकप्रिय श्रेणियों को प्राप्त करने के लिए एक प्रश्न लिखना चाहता हूं, जिसका मतलब श्रेणियों को प्राप्त करना है जिनकी वस्तुओं ने पिछले हफ्ते अधिक वोट (दोनों ऊपर या नीचे) प्राप्त किए हैं।

< पी> मैं कुछ आसान कोशिश कर रहा हूँ, बस लोकप्रिय आइटम मिल रहा है, लेकिन मैं वास्तव में सिर्फ इस बिंदु पर अनुमान लगा रहा हूँ और यह काम नहीं करता है।

  SELECT *, COUNT (votes.item_id) वस्तुओं से स्कोर के रूप में प्रवेश करें वोटों का उपयोग करें (item_id) कहां वोट .created_at & gt; # {1.week.ago} आदेश द्वारा COUNT (वोट। Etem_id) DESC LIMIT 5;  

मुझे नहीं पता कि मैं क्या कर रहा हूं, कोई विचार? इसके अलावा, यदि किसी को भी और अधिक उन्नत करने के बारे में अच्छी तरह से लिखना चाहिए, तो इस तरह से मुझे यह पढ़ने के लिए अच्छा लगेगा। MySQL प्रलेखन थोड़ा गुप्त है और मुझे वास्तव में 'एएस' और 'जॉन्स' नहीं समझते।

<पी > यह कोशिश करो श्रेणी के नाम से समूह का उपयोग करें। मैंने आपके द्वारा विनिर्दिष्ट खंड के रूप में टिप्पणी की है, यदि आप इसका इस्तेमाल करना चाहते हैं, तो आप इसे रद्द कर सकते हैं।

  SELECT c.name, SUM (ABS (v.item_id)) से श्रेणियों से , आइटम मैं, वोट वी। जहां सी.नाम = i.name और i.item_id = v.item_id - और v.created_at & gt; # {1.week.ago} ग्रुप द्वारा सी। नाम आदेश द्वारा एसयूएम (एबीएस (v.item_id)) डीईएससी LIMIT 5;  

आप देखेंगे कि मैंने JOIN कीवर्ड का उपयोग नहीं किया बल्कि इसके बजाय केवल WHERE खंडों का उपयोग करके क्वेरी के परिणामों को फ़िल्टर्ड किया, जो समझना आसान हो सकता है। अगर आप जॉन्स के बारे में अधिक जानना चाहते हैं, तो

(एएस खंड)। वास्तव में, इस साइट पर विभिन्न एसक्यूएल विषयों के एक समूह के लिए एक समूह और अधिक ट्यूटोरियल हैं जो मंच पर निर्भर नहीं हैं।

संपादित करें: टिप्पणियों के अनुसार तय किया गया, एब फ़ंक्शन ,


Comments

Popular posts from this blog

c++ - Linux and clipboard -

Visual Studio 2005: How to speed up builds when a VSMDI is open? -

booting ubuntu from usb using virtualbox -