Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để tìm top 3 topper của mỗi chủ đề trong bảng nhất định

Bạn có thể làm điều này bằng cách sử dụng các biến.

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. Cách kiểm tra kích thước cơ sở dữ liệu MySQL trong Linux

  2. LỆNH SQL BẰNG cách sử dụng các câu lệnh đã soạn sẵn

  3. trong Php làm thế nào để loại bỏ mã biểu tượng cảm xúc?

  4. Cơ sở dữ liệu kết quả là đối tượng hay mảng?

  5. BIGINT Lỗi ngoài phạm vi kể từ MySQL 5.5