Ранжируйте пользователей с одинаковыми рангами, если у них одинаковые очки, а затем пропустите остальную часть звания.sql рейтинг, когда 5 пользователей имеют одинаковые очки и ранги, должны быть пропущены, если у пользователей одинаковый ранг
Например, в приведенной ниже таблице показано, что пользователь 5 первым ответил 3 раза, поэтому его рейтинг будет превыше всего, тогда пользователь 4, а затем user1, а остальное? Я очень ценю любую помощь. Спасибо заранее.
SELECT name,
(select count(*)
from users u2
where u2.points > u.points or
u2.points = u.points and u2.sno <= u.sno
) as rank
FROM `users` u GROUP BY `name` , `sno`
ORDER BY CAST(points AS UNSIGNED) DESC;
ПОЛЬЗОВАТЕЛЕЙ:
SNO points first_to_respond name
1 100 1 a
2 100 0 b
3 100 0 c
4 100 2 d
5 100 3 e
если вы хотите знать, что делает запрос, просто запустите его и посмотрите. – Barmar
Что такое '' sno' в запросе? – Barmar
Я знаю, что я использую в этом вопросе. Я хотел бы знать, как лучше всего использовать три подхода или любой другой способ оценивать, когда пользователи имеют одни и те же точки, и вы должны их ранжировать. – jason