SQL 更新查询 - 获取多个评分的平均值,然后将该数字转移到不同的 table
SQL Update Query - Get average of multiple ratings and then transfer that number onto a different table
在这个问题中,我有 2 个 table,一个包含评分为 1-5 的游戏评论列表,另一个是视频游戏列表。我想找到每场比赛的平均评分,然后将这些数字插入另一个 table 上各自的位置。我不确定在哪里处理这个问题是使用 JOIN 更合适还是使用任何其他技术。
我知道在下面的代码中,我提供了与特定游戏评级相对的一般平均值。
UPDATE GamesList
SET GamesList.AvgRating = AVG(GameReviews.Rating)
FROM GameReviews, GamesList
WHERE GamesList.GameTitle = GameReviews.GameTitle
我在这里要实现的目标如下所示
GameTitle
Average Rating
GTA
4.3
Witcher
4.6
来自table这样的
Game Title
Rating
GTA
4
GTA
4
GTA
5
Witcher
4
Witcher
5
Witcher
5
如有任何建议,我们将不胜感激。
我建议不要在正式 table 中保留平均数据。相反,只需使用 query/view 来生成平均值:
SELECT gl.GameTitle, COALESCE(AVG(gr.Rating), 0) AS AvgRating
FROM GamesList gl
LEFT JOIN GameReviews gr
ON gr.GameTitle = gl.GameTitle
GROUP BY gl.GameTitle;
在这个问题中,我有 2 个 table,一个包含评分为 1-5 的游戏评论列表,另一个是视频游戏列表。我想找到每场比赛的平均评分,然后将这些数字插入另一个 table 上各自的位置。我不确定在哪里处理这个问题是使用 JOIN 更合适还是使用任何其他技术。 我知道在下面的代码中,我提供了与特定游戏评级相对的一般平均值。
UPDATE GamesList
SET GamesList.AvgRating = AVG(GameReviews.Rating)
FROM GameReviews, GamesList
WHERE GamesList.GameTitle = GameReviews.GameTitle
我在这里要实现的目标如下所示
GameTitle | Average Rating |
---|---|
GTA | 4.3 |
Witcher | 4.6 |
来自table这样的
Game Title | Rating |
---|---|
GTA | 4 |
GTA | 4 |
GTA | 5 |
Witcher | 4 |
Witcher | 5 |
Witcher | 5 |
如有任何建议,我们将不胜感激。
我建议不要在正式 table 中保留平均数据。相反,只需使用 query/view 来生成平均值:
SELECT gl.GameTitle, COALESCE(AVG(gr.Rating), 0) AS AvgRating
FROM GamesList gl
LEFT JOIN GameReviews gr
ON gr.GameTitle = gl.GameTitle
GROUP BY gl.GameTitle;