SQL соответствует условиям на основе максимального значения

0

Я должен получить player_id и game_code игры, в которую пользователь играл больше всего. Для каждого игрока список game_code он играл больше всего (не все игры он играл)

Правила: player_id уникален, и игрок мог сыграть в несколько игр (я хочу узнать, в какой игре он играл больше всего).

Я пробовал с max, но я просто заблудился.

Вот скрипка: http://sqlfiddle.com/#!9/0cf0f/2

Теги:
join
max
greatest-n-per-group

2 ответа

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

Я считаю, вы хотите этого

SELECT t.player_id, t.game_code, t.minutes_played
FROM (
      SELECT player_id, MAX(minutes_played) as maxi
      FROM play_table
      WHERE game_code in ('123','124','125','126','129')
      GROUP BY player_id
) as m
INNER JOIN play_table as t
  ON t.player_id = m.player_id and 
     t.minutes_played = m.maxi

Демо-версия sqlfiddle

  • 0
    Звучит действительно хорошо! Я должен покинуть свой компьютер сейчас, но я попробую это первым делом утром и назову решение, если оно будет работать! Спасибо за быстрое предложение ULTRA !!! ура
  • 0
    Как я уже писал в другом предложении, я хотел бы получить только коды_игр для каждого пользователя, которого он сыграл больше всего. Извините, если мое описание было недостаточно ясным!
Показать ещё 3 комментария
0

Другой ответ на правильном пути, но вам нужно группировать player_id в подзапросе, предполагая, что вы хотите все:

SELECT m.player_id, pt.game_code, pt.minutes_played
FROM (
    SELECT player_id, max(minutes_played) as maxi
    FROM play_table
    GROUP BY player_id
) as m
INNER JOIN play_table pt
ON  m.player_id = pt.player_id
AND pt.minutes_played = m.maxi;
  • 0
    Спасибо за предложение, но я получаю слишком много результатов. Мне нужно получить player_id и game_code, но только для одной игры, в которую он играл больше всего. Например, player_id 1 должен иметь только game_code 125, потому что он играл в эту игру больше всего. Для player_id 2 это должен быть просто game_code 124 и так далее ... спасибо за вашу помощь !!

Ещё вопросы

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