Получите среднее значение для пользователя - PullRequest
0 голосов
/ 26 марта 2012

У меня есть MYSQL-таблица, в которой хранятся результаты. Каждый раз, когда пользователь улучшает, новая запись вставляется в таблицу.

Пример таблицы:

| userID |  time  | gameID |
|--------------------------|
|   u1   |    3   |  game1 |
|   u1   |    2   |  game1 |
|   u2   |    3   |  game1 |
|   u3   |    3   |  game1 |
|   u1   |    3   |  game2 |
|   u2   |    1   |  game2 |

Я бы хотел запросить таблицу и получить таблицу, похожую на эту.

| gameID |  min_time  | avg_time |
|--------------------------------|
| game1  |      2     |   2.66   |
| game2  |      1     |   2.00   |

Мне нужно минимальное время для идентификатора игры и среднее время, которое состоит только из каждого пользователя, минимальное время на игру (если пользователь играл в игру1 три раза, то для среднего следует использовать только лучшее (самое короткое) для других пользователей).

Возможно ли это с помощью запроса MYSQL?

1 Ответ

3 голосов
/ 26 марта 2012
SELECT
    gameID
  , MIN(min_time) AS min_time
  , AVG(min_time) AS avg_time
FROM
    ( SELECT
          gameID
        , MIN(time) AS min_time
      FROM 
          tableX
      GROUP BY
          gameID
        , userID
    ) AS x
GROUP BY
    gameID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...