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

Bagaimana menemukan top 3 teratas dari setiap mata pelajaran di tabel yang diberikan

Anda dapat melakukan ini menggunakan variabel.

select t.*
from (select t.*,
             (@rn := if(@s = subject, @rn + 1,
                        if(@s := subject, 1, 1)
                       )
             ) as rn
      from t cross join
           (select @rn := 0, @s := '') params
      order by subject, marks desc
     ) t 
where rn <= 3
order by t.subject, t.rn;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat urutan di MySQL?

  2. Tambahkan tanggal ke mysql dari php untuk menyortir nanti

  3. Filter kueri MYSQL dengan opsi formulir

  4. MySQL bergabung dengan tabel di mana nama tabel adalah bidang dari tabel lain

  5. Desain basis data pertama kali:apakah saya melakukan rekayasa berlebihan?