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

गतिशील रैंकिंग पंक्तियों के लिए MySQL क्वेरी

होना
यह धीमा होगा, लेकिन एक having क्लॉज बाद में चलेगा सभी चयन, जुड़ते हैं, कहां और समूह द्वारा समाप्त हो गए हैं और पूरी तरह से हल हो गए हैं।
एकमात्र समस्या यह है कि having एक अनुक्रमणिका का उपयोग नहीं करता है, जबकि where एक इंडेक्स का उपयोग करता है।

SELECT
  ranking stuff
FROM 
  lot of tables
WHERE simple_condition
HAVING filters_that_run_last

अपने जुड़ाव को स्पष्ट बनाएं
ध्यान दें कि आपको स्पष्ट और निहित जोड़ मिलाने की आवश्यकता नहीं है।
यदि आप चाहते हैं एक क्रॉस जॉइन, आप cross join . का उपयोग कर सकते हैं खोजशब्द।

    ....
    ) AS Ranking
    CROSS JOIN (SELECT @curr := null, @prev := null, @rank := 0) InitVars
WHERE
  Ranking.regional_id = 1003


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में VALUES स्टेटमेंट

  2. डुप्लीकेट कुंजी अद्यतन के साथ MySQL लोड डेटा इनफाइल

  3. DatabaseMetaData का उपयोग करके mysql तालिका टिप्पणी प्राप्त करें

  4. दो कॉलम मानों को कैसे गुणा करें और प्रत्येक पंक्ति के अंत में अपना परिणाम कैसे प्रदर्शित करें?

  5. एसक्यूएल - अलग-अलग तिथियों के साथ एक ही कॉलम को दो बार क्वेरी करें जहां क्लॉज