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

सभी उपयोगकर्ताओं की सूची देता है, उनके सबसे लोकप्रिय अनुयायी के साथ जोड़ा जाता है। किसी के जितने अधिक अनुयायी होते हैं, वे उतने ही लोकप्रिय होते हैं

आप निम्न क्वेरी का उपयोग कर सकते हैं:

SELECT person_name, follower_name, cnt
FROM (
   SELECT person_name, follower_name, cnt,
          @rn := IF(@pname = person_name, @rn + 1,
                    IF(@pname := person_name, 1, 1)) AS rn
   FROM (
      SELECT t3.name AS person_name, t4.name AS follower_name, t2.cnt
      FROM followers AS t1
      JOIN (
         SELECT person_id, COUNT(*) AS cnt
         FROM followers
         GROUP BY person_id 
      ) AS t2  ON t1.follower_person_id = t2.person_id
      JOIN person AS t3 ON t1.person_id = t3.id
      JOIN person AS t4 ON t1.follower_person_id = t4.id   
   ) AS x
   CROSS JOIN (SELECT @rn := 0, @pname := '') AS vars
   ORDER BY person_name, cnt DESC) AS v
wHERE v.rn = 1;  

आउटपुट:

person_name follower_name   cnt
--------------------------------
John        Rohn            3
Veronica    Rohn            3
Ali         John            2
Rohn        Ali             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. MySQL JSON स्टोरेज बनाम टू टेबल्स

  2. .नेट कोर 2.0 डाटाबेस पहला दृष्टिकोण स्कैफोल्ड-मैसकल डीबी का डीबीकॉन्टेक्स्ट

  3. mysql डेटाबेस से रिकॉर्ड हटाने के लिए _GET url लिंक का उपयोग करना

  4. वाइल्डकार्ड एक MySQL डेटाबेस में एन्क्रिप्टेड डेटा की खोज?

  5. mysql क्वेरी में IST समय का उपयोग करना