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

MySQL - peringkat berdasarkan count() dan GROUP BY

Anda perlu mengelompokkan seluruh hasil Anda berdasarkan ID pengguna terlebih dahulu dan diurutkan... kemudian menerapkan peringkat

select
      @rownum := @rownum +1 as rank,
      prequery.uid,
      prequery.PostCount
   from
      ( select @rownum := 0 ) sqlvars,
      ( SELECT uid, count(id) postCount
           from posts
           group by uid
           order by count(id) desc ) prequery

Untuk mendapatkan orang tertentu, dan masalah mencoba klausa "HAVING", saya kemudian akan membungkusnya dan kemudian menerapkan di mana...

select WrappedQuery.* 
   from ( entire query from above ) WrappedQuery
   where WrappedQuery.uid = SinglePerson



  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 tidak menggunakan indeks pada DATE saat digunakan dengan operator '<' atau '>'?

  2. Dapatkan nilai dari database di tag pilih HTML PHP MySQL

  3. Karakter Turki tidak ditampilkan dengan benar

  4. MySqlCommand().ExecuteReader().GetString() tidak berfungsi

  5. Menggunakan mysql concat() dalam klausa WHERE?