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

एक-से-अनेक तालिकाओं में उपयोगकर्ता की रैंकिंग के लिए क्वेरी करना

SELECT u.id,total_score,
 ( SELECT COUNT(*) FROM
    (SELECT u1.id, (IFNULL(u1.freebee,0)+ IFNULL(SUM(score),0)) as total_score
     FROM users u1
     LEFT JOIN games g ON (g.userId = u1.id)
     GROUP BY u1.id
    )x1
   WHERE x1.total_score > x.total_score
 )+1 as rank,

( SELECT COUNT(DISTINCT total_score) FROM
    (SELECT u1.id, (IFNULL(u1.freebee,0)+ IFNULL(SUM(score),0)) as total_score
     FROM users u1
     LEFT JOIN games g ON (g.userId_Id = u1.id)
     GROUP BY u1.id
    )x1
   WHERE x1.total_score > x.total_score
 )+1 as dns_rank

 FROM users u

 LEFT JOIN
  ( SELECT u1.id, (IFNULL(u1.freebee,0)+ IFNULL(SUM(score),0)) as total_score
    FROM users u1
    LEFT JOIN games g ON (g.userId = u1.id)
    GROUP BY u1.id
  )x ON (x.id = u.id)

rank - (सामान्य रैंक - जैसे - 1,2,2,4,5), dns_rank - सघन रैंक (1,2,2,3,4)। कॉलम total_score - केवल डिबगिंग के लिए...



  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 स्टेटमेंट तैयार करें - चुनें

  2. गलती! पीआईडी ​​फ़ाइल (/usr/local/mysql/data/Mac.local.pid) को अपडेट किए बिना सर्वर ने बंद कर दिया

  3. काउचडब बनाम माइस्क्ल स्पीड

  4. नेस्टेड कास्ट काम नहीं कर रहा

  5. MySQL:एक साधारण टेबल पर समवर्ती अद्यतन (थ्रेड्स के माध्यम से)