@rusindex
Начинающий програмист

Как определить на каком месте в рейтинге находиться пользователь?

Есть список пользователей у каждого есть % успеваемости.
Мне нужно что бы пользователь видел на каком он месте среди всех учеников.
Долго пытаюсь найти похожую информация но не могу.
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Оконная функция. ROW_NUMBER. Или RANK. Реализация определяется конкретной СУБД.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Господи, совсем люди разучились SQL писать
чуть что - переменные, оконные функции. процедуру еще напишите

SELECT count(*)+1 FROM players WHERE score > (SELECT score FROM players WHERE id = ?)
Ответ написан
@galaxy
Какая БД? В mysql есть переменные и можно примерно так:
SELECT    name,
          percent,
          @curRank := @curRank + 1 AS rank
FROM      students s, (SELECT @curRank := 0) r
ORDER BY  percent desc;

(за синтаксис не ручаюсь)

Нормальный способ это делать, в настоящее время более-менее переносимый, - через оконные функции:
SELECT name,
       percent,
       dense_rank() over (order by percent desc) rating
  FROM students
 ORDER BY 1;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы