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