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

MySQL:यह अधिकतम एन सदस्य प्रति समूह क्वेरी क्यों काम करता है?

सहसंबद्ध सबक्वेरी समान देश और उच्च आईडी वाले व्यक्तियों की संख्या लौटाती है। तो अगर आप इसकी तुलना < 2 . से करते हैं आप प्रत्येक देश के लिए केवल दो उच्चतम आईडी चुनेंगे। आप इसे एक बाधा के रूप में उपयोग करने के बजाय सबक्वेरी के चयन के परिणामों को देखकर इसका एक बेहतर विचार प्राप्त कर सकते हैं:

SELECT co.id, co.person, co.country,
    (
        SELECT COUNT(*)
        FROM person ci
        WHERE  co.country = ci.country      -- controlling grouping column
        AND co.id < ci.id                       -- controlling min or max 
    ) AS higher_ids
FROM person co

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=9c3c3160ddd299b

ध्यान दें कि जब तक ऐसे अनुकूलन नहीं हैं जो विशेष रूप से इस पैटर्न की तलाश में हैं, जो मुझे अत्यधिक संदेह है, यह क्वेरी ओ (एन ^ 2) होगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केवल (My)SQL का उपयोग करके लिमिट ऑफ़सेट को डायनेमिक कैसे बनाया जाए

  2. हम किसी तालिका में किसी फ़ील्ड द्वारा गतिशील क्रम को कैसे नियंत्रित करते हैं?

  3. Yii . में अंतिम सम्मिलित मूल्य प्राप्त करना

  4. PHP, SQL सीमा क्वेरी php चर द्वारा

  5. विशिष्ट श्रेणी के लिए गतिशील न्यूनतम मान (mysql)