MySQL में एकाधिक श्रेणियों से शीर्ष 3 पंक्तियों का चयन करना
किसी तालिका के भीतर प्रत्येक श्रेणी से शीर्ष पंक्तियों का चयन करना चुनौतीपूर्ण हो सकता है। जैसा कि शुरुआती प्रयास में बताया गया है, व्यू और सबक्वेरीज़ का उपयोग करने वाली एक विधि गलत परिणाम दे सकती है।
एक अधिक प्रभावी दृष्टिकोण विश्लेषणात्मक कार्यों को नियोजित करता है, जो MySQL मूल रूप से समर्थन नहीं करता है। हालाँकि, चर का उपयोग करके इन कार्यों का अनुकरण करना संभव है। यहां बताया गया है:
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 यह क्वेरी JOIN ऑपरेशन का उपयोग करके वेरिएबल @rownum और @category को प्रारंभ करती है। इसके बाद यह प्रत्येक पंक्ति को उसकी श्रेणी के आधार पर एक रैंक प्रदान करता है, यदि श्रेणी बदलती है तो रैंक बढ़ जाती है।
अंत में, क्वेरी केवल 3 या उससे कम रैंक वाली पंक्तियों का चयन करती है। ध्यान दें कि आपको केवल वांछित कॉलम शामिल करने के लिए SELECT x.* खंड को संशोधित करने की आवश्यकता हो सकती है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3