"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > विश्लेषणात्मक कार्यों के बिना MySQL में प्रत्येक श्रेणी से शीर्ष 3 पंक्तियों का चयन कैसे करें?

विश्लेषणात्मक कार्यों के बिना MySQL में प्रत्येक श्रेणी से शीर्ष 3 पंक्तियों का चयन कैसे करें?

2024-11-03 को प्रकाशित
ब्राउज़ करें:189

How to Select the Top 3 Rows from Each Category in MySQL Without Analytic Functions?

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