获得用户不同最佳分数的平均值

时间:2012-03-25 22:25:15

标签: mysql mysqli

我有一个存储分数的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   |

我需要每个游戏ID的最短时间和平均时间,每个游戏只包含每个游戏的最小时间(如果用户玩游戏1只有最好的(最短的)三次,则应该与其他用户一起使用)。 / p>

这可以通过MYSQL查询吗?

1 个答案:

答案 0 :(得分:3)

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