Храните статистику игрока в MySQL со временем, чтобы получить рейтинг последних 30 дней с наибольшим значением

0

EDIT: Я объясняю это снова. Надеюсь, вы это понимаете :)

Я хочу сохранить статистику игрока в mysql. Я хочу, чтобы все статистические данные времени, каждое убийство, смерть или победа сохранялись в таблице. И я хочу статистику за последние 30 дней, я хочу, чтобы запрос mysql получил убийства или победы только одного игрока за последние 30 дней. Я не знаю, как сэкономить. И тогда я хочу получить 10 лучших статистических данных за последние 30 дней (месяц).

  • 0
    добавить ГДЕ время> СЕЙЧАС () - ИНТЕРВАЛ 30 ДНЯ
  • 1
    Вы должны добавить пример данных и желаемых результатов.
Показать ещё 1 комментарий
Теги:
order
ranking

1 ответ

0

Вы можете получить список игроков с наибольшим значением, используя:

select player, sum(wins) as numwins
from t
group by player
order by numwins desc;

Вы можете добавить фильтр, чтобы получать только игроков за последние 30 дней:

select player, sum(wins) as numwins
from t
where time > curdate() - interval 30 day
group by player
order by numwins desc;

Вы можете добавить limit 1 чтобы получить одного такого игрока.

Если вам нужны все игроки, когда есть связи, то запрос немного сложнее.

  • 0
    Когда игрок выигрывает раунд, столбец получает +1, но я хочу получить значение выигрыша за последние 30 дней. Пример: у меня 10 побед, но 5 за последние 30 дней, тогда я получу только 5 побед. А затем топ-10 самых высоких побед за последние 30 дней
  • 0
    Пример для рейтинга: Player1 с 20 победами за последние 30 дней. Player2 с 16 победами за последние 30 дней

Ещё вопросы

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