2013-12-19 3 views
0

Helllo.Как получить ранг mysql для правильного направления

Я пишу запрос, чтобы сделать пару вещей. Пользователям назначается команда, у каждого пользователя есть баллы, я группирую пользователей по имени их команды и подсчитывая их очки. Я также назначаю ранг.

Все работает отлично, но рейтинг дает ранг 1 до самого низкого балла, а не самый высокий балл. Это мой запрос

SELECT users.teamname as Team, users.points AS Score, COUNT(users.points) AS Members, @curRank := @curRank + 1 AS Rank 
FROM users,(SELECT @curRank := 0) r 
WHERE !(teamname is null) 
GROUP BY `teamname` 
ORDER BY Score 

Я думаю, что мне нужно что-то вложить, но я никогда не делал ничего подобного раньше.

+1

Не могли бы вы просто «ЗАКАЗАТЬ СЧИТАТЬСЯ ОТ DESC» - и было бы правильное ранжирование? –

+0

Я думаю, вы также хотите, чтобы SUM (очки) не COUNT (очки). – user1336827

+0

@scrowler Когда я делаю 'ORDER BY Score DESC', ранг тогда обратный. –

ответ

2

Проблема может быть:

ORDER BY Score 

, так как вы не указали направление, он поднимается. Другими словами, самое низкое значение находится вверху. Чтобы установить максимальное значение в верхней части, выполните следующие действия:

ORDER BY Score desc 

или это может быть что-то еще.

+0

Я попробовал 'ORDER BY Score DESC', и он поставил оценку в правильном порядке, но тогда ранг заканчивается назад. –

Смежные вопросы