Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL क्वेरी:प्रत्येक श्रेणी के लिए तालिका से शीर्ष 3 पंक्तियों का चयन करें

LIMIT केवल कथन द्वारा लौटाए गए परिणामों की संख्या को रोकता है। आप जो खोज रहे हैं उसे आम तौर पर विश्लेषणात्मक/विंडो/रैंकिंग फ़ंक्शन कहा जाता है - जो 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 <= 3

अगर आप नहीं बदलते हैं SELECT x.* , परिणाम सेट में rank . शामिल होगा और var_category मान - यदि ऐसा नहीं है तो आपको वे कॉलम निर्दिष्ट करने होंगे जो आप वास्तव में चाहते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डुप्लिकेट प्रविष्टि की जाँच करें बनाम PDO errorInfo परिणाम का उपयोग करें

  2. MySQL डेटाबेस को संस्करण नियंत्रण में रखें?

  3. उस तालिका में सम्मिलित करें जिसके नाम में डैश है

  4. php . का उपयोग करके mysql तालिका में टाइमस्टैम्प सहेजा जा रहा है

  5. दो स्टॉप नामों के बीच सभी प्रस्थान और आगमन के समय को सूचीबद्ध करने के लिए GTFS क्वेरी