Как получить положение или ранг чисел в таблице базы данных - PullRequest
0 голосов
/ 05 февраля 2020

Есть таблица с полями - id, имя студента, оценка. Как написать запрос mysql / php, который определит позицию ученика на основе поля оценки. Например, если у нас есть оценки: 60,57,80,90,85; учащийся со счетом 90 будет иметь 1-ю позицию, 85-ю 2-ую позицию и т.д. Две одинаковые оценки будут иметь одинаковую позицию n, но следующая оценка будет иметь n + 2-ю позицию. Как выглядит запрос SQL?

1 Ответ

0 голосов
/ 05 февраля 2020

Вы можете использовать rank():

select t.*, rank() over (order by score desc) as rnk
from t;

Если вы хотите это для конкретного студента, используйте подзапрос:

select t.*
from (select t.*, rank() over (order by score desc) as rnk
      from t
     ) t
where studentid = ?
...