Mysql
 sql >> база данни >  >> RDS >> Mysql

Класирайте потребителите в mysql по техните точки

Това е само поправка на решението на Гордън с помощта на променливи. Работата е там, че вашата функция за ранг не е начинът, по който рангът трябва да работи. (ученик 4 трябва да бъде ранг 4)

SQL Fiddle Демо Можете да добавите още ученик, за да подобрите тестването.

изберете er.*, (@rank :=if(@points =точки, @rank, if(@points :=точки, @rank + 1, @rank + 1 ) ) ) като класиране от студенти er кръстосано присъединяване (изберете @rank :=0, @points :=-1) подреждане на параметри по точки desc; 

ИЗХОД

<предварителен код>| ID | точки | класиране ||----|--------|--------|| 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. Заявка точки в рамките на даден радиус в MySQL

  2. Предотвратяване на автоматично увеличение на InnoDB НА ДУПЛИКАТ КЛЮЧ

  3. Как да изчислим разликата между две дати в MySQL

  4. Мога ли да стартирам HTTP GET директно в SQL под MySQL?

  5. Как да обединя цели набори от резултати в MySQL?