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

Xếp hạng người dùng trong mysql theo điểm của họ

Đây chỉ là một bản sửa lỗi của giải pháp Gordon sử dụng các biến. Vấn đề là chức năng xếp hạng của bạn không phải là cách xếp hạng hoạt động. (học sinh 4 phải được xếp hạng 4)

SQL Fiddle Demo Bạn có thể thêm nhiều sinh viên hơn để cải thiện bài kiểm tra.

select er.*,
       (@rank := if(@points = points, 
                    @rank, 
                    if(@points := points,    
                       @rank + 1, 
                       @rank + 1                       
                      )
                   )                  
       ) as ranking
from students er cross join
     (select @rank := 0, @points := -1) params
order by points desc;

ĐẦU RA

| id | points | ranking |
|----|--------|---------|
|  1 |     80 |       1 |
|  2 |     78 |       2 |
|  3 |     78 |       2 |
|  4 |     77 |       3 |
|  5 |     66 |       4 |
|  6 |     66 |       4 |
|  7 |     66 |       4 |
|  8 |     15 |       5 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với MySQL trên AWS từ máy cục bộ

  2. rake db:tạo - vấn đề đối chiếu

  3. Giá trị sai được trả về từ float mysql

  4. Sắp xếp cột chuỗi chứa số trong SQL?

  5. Excel VBA:ghi vào cơ sở dữ liệu mysql