Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

menanyakan peringkat pengguna dalam tabel satu-ke-banyak

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 - (peringkat normal - mis. - 1,2,2,4,5), dns_rank - peringkat padat (1,2,2,3,4). Kolom total_score - hanya untuk debugging...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. liferay memigrasikan data dari hsql ke mysql

  2. Bagaimana cara menyimpan 3 daftar tombol radio di database mysql dalam satu kolom, baris yang berbeda?

  3. DATEDIFF() Contoh – MySQL

  4. Transaksi MySQL dengan aplikasi akuntansi

  5. Peringatan:mysql_query():Akses ditolak untuk pengguna 'admin'@'localhost' (menggunakan kata sandi:TIDAK)