Сортировка наибольшего значения другого запроса

0

чтобы получить статистическую ценность игрока за последний месяц, я использую этот запрос:

SELECT COUNT(*) FROM test WHERE player='player1' AND statistic=0 AND time > DATE_SUB(now(), INTERVAL 1 MONTH)

Теперь я хочу, чтобы лучшие 10 игроков имели наибольшую ценность.
Пример:
player1 имеет значение 40 (из запроса выше)
player2 имеет значение 78 (из запроса выше)
player3 имеет значение 21 (из запроса выше)

Теперь рейтинг должен быть:

  1. player2
  2. player1
  3. player3

Но как я могу сортировать рейтинг? Потому что мне нужно значение запроса выше?
Спасибо

Теги:
sorting
ranking

1 ответ

1
Лучший ответ

Это то, что вы хотите?

SELECT (@rn := @rn + 1) as ranking, p.*
FROM (SELECT player, COUNT(*) as cnt
      FROM test
      WHERE statistic=0 AND time > DATE_SUB(now(), INTERVAL 1 MONTH)
      GROUP BY player
      ORDER BY COUNT(*) desc
     ) p CROSS JOIN
     (SELECT @rn := 0) params
LIMIT 10;
  • 0
    Да, это работает! Спасибо.
  • 0
    Можете ли вы показать мне, как я получаю звание игрока? Пример: player1
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню