Mysql 获取用户最佳分数的平均值

Mysql 获取用户最佳分数的平均值,mysql,mysqli,Mysql,Mysqli,我有一个存储分数的MYSQL表。 每次用户改进时,都会在表中插入一个新条目 表格示例: | userID | time | gameID | |--------------------------| | u1 | 3 | game1 | | u1 | 2 | game1 | | u2 | 3 | game1 | | u3 | 3 | game1 | | u1 | 3 | game2 | |

我有一个存储分数的MYSQL表。 每次用户改进时,都会在表中插入一个新条目

表格示例:

| userID | time | gameID | |--------------------------| | u1 | 3 | game1 | | u1 | 2 | game1 | | u2 | 3 | game1 | | u3 | 3 | game1 | | u1 | 3 | game2 | | u2 | 1 | game2 | |用户ID |时间|游戏ID| |--------------------------| |u1 | 3 |游戏1| |u1 | 2 |游戏1| |u2 | 3 |游戏1| |u3 | 3 |游戏1| |u1 | 3 |游戏2| |u2 | 1 |游戏2| 我想查询这个表,得到一个如下所示的表

| gameID | min_time | avg_time | |--------------------------------| | game1 | 2 | 2.66 | | game2 | 1 | 2.00 | |gameID |最小时间|平均时间| |--------------------------------| |游戏1 | 2 | 2.66| |游戏2 | 1 | 2.00| 我需要每个gameID的最短时间和平均时间,平均时间只包括每个用户每个游戏的最短时间(如果一个用户玩了三次游戏1,那么最好的(最短的)应该用于其他用户的平均时间)

对于MYSQL查询,这可能吗

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