在 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
               );