MySQL में प्रति श्रेणी शीर्ष पंक्तियों का चयन करना
किसी तालिका में प्रत्येक श्रेणी से सीमित संख्या में पंक्तियों को पुनः प्राप्त करने के लिए, आप विश्लेषणात्मक कार्यों का उपयोग कर सकते हैं . हालाँकि, MySQL इन कार्यों को सीधे पेश नहीं करता है। फिर भी, वेरिएबल्स का उपयोग करके उनका अनुकरण करना संभव है। :
x चुनें।* से ( टी चुनें*, मामला जब @श्रेणी != t.श्रेणी तब @rownum := 1 अन्य @rownum := @rownum 1 अंत AS रैंक, @श्रेणी := t.श्रेणी AS var_category TBL_ARTIKUJT से टी शामिल हों (सेलेक्ट @rownum := NULL, @category := '') r टी.श्रेणी के अनुसार ऑर्डर करें ) एक्स जहां x.रैंक
स्पष्टीकरण
SELECT x.*
FROM (
SELECT t.*,
CASE
WHEN @category != t.category THEN @rownum := 1
ELSE @rownum := @rownum 1
END AS rank,
@category := t.category AS var_category
FROM TBL_ARTIKUJT t
JOIN (SELECT @rownum := NULL, @category := '') r
ORDER BY t.category
) x
WHERE x.rank सबक्वेरी TBL_ARTIKUJT तालिका से सभी पंक्तियों का चयन करती है और दो सत्र चर, @rownum और @category प्रारंभ करती है, वर्तमान रैंकिंग और श्रेणी को ट्रैक करने के लिए।प्रत्येक पंक्ति को सौंपी गई रैंक उसकी श्रेणी के भीतर उसकी स्थिति को इंगित करती है। जब एक नई श्रेणी सामने आती है, तो रैंक 1 पर रीसेट हो जाती है। 3 से कम या उसके बराबर।
यह विधि आपको विश्लेषणात्मक कार्यों पर भरोसा किए बिना वांछित कार्यक्षमता लागू करने की अनुमति देती है, जो समर्थित नहीं हैं MySQL.
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3