在 SQL 中遇到问题,我需要根据每个特定游戏 ID 的平均分数更新 table 中的多条记录
Having trouble in SQL where I need to update multiple records in a table based on the average of scores for each specific gameID
这是我过去做错的一个问题示例,除了学习解决问题的方法之外没有任何相关性。
我创建了一个基本的table:
玩家ID(整数)
游戏ID(整数)
分数(整数)
难度 varchar(10)
我用随机数填充了前三列。
我想要的是根据得分的平均值为每个特定游戏 ID 分配难度。
这是我尝试分配困难的方法。
更新score_board
设置难度='hard'
其中 3>=
(select 平均(分数)
来自 score_board
按游戏id分组);
但是,这失败了,因为您无法对子查询获得的多行进行比较。
有没有办法在不在查询中实际指定游戏 ID 的情况下获取每个游戏 ID 的平均值?
关闭。 . .需要相关子句:
update score_board sb
set difficulty = 'hard'
where 3 >= (select avg(sb2.score)
from score_board sb2
where sb2.gameid = sb.gameid
);
这是我过去做错的一个问题示例,除了学习解决问题的方法之外没有任何相关性。
我创建了一个基本的table:
玩家ID(整数)
游戏ID(整数)
分数(整数)
难度 varchar(10)
我用随机数填充了前三列。 我想要的是根据得分的平均值为每个特定游戏 ID 分配难度。 这是我尝试分配困难的方法。
更新score_board
设置难度='hard'
其中 3>= (select 平均(分数)
来自 score_board
按游戏id分组);
但是,这失败了,因为您无法对子查询获得的多行进行比较。 有没有办法在不在查询中实际指定游戏 ID 的情况下获取每个游戏 ID 的平均值?
关闭。 . .需要相关子句:
update score_board sb
set difficulty = 'hard'
where 3 >= (select avg(sb2.score)
from score_board sb2
where sb2.gameid = sb.gameid
);