0
我想在Oracle表更新列,以便为每个Game
的Goals
列接收平均目标从goal_scored
得分的球员表,但我不断收到以下错误信息:更新SQL属性
"Error: ORA-01427: single-row subquery returns more than one row"
我测试了这个查询,它返回了10行,与Games
一样多,结果也是正确的。
这是我的代码:
UPDATE GEN
SET Goals = (Select AVG(goal_scored) FROM Player, Gen, Game
WHERE Game.Name=Gen.Gameid AND Player.Gameid=Game.Name
GROUP BY Player.Gamename);
如果我跳过GROUP BY
我不明白的错误,但所有Game
小号获得相同的平均分数。
我看到了一种跨在你的嵌套查询的加入,在这里:'从玩家,艮,Game' – danihp
子查询后'设定目标='有一个返回值只有一行。你的问题没有解释如何计算平均值 - 是否由玩家选择?如果不是,什么?你可以展示你的餐桌结构吗? –
你不需要一个Group By在您选择了一个汇聚的查询。值。汇聚。函数返回一个值,而不是多个值。您选择的结果将是单个行 - 无需分组。如果不是,那么这是一个错误的查询。 – Art