如何生成 SQL 查询,其中包含来自不同表的电影的平均得分?

How can I generate SQL query with average score for movie from different tables?

非常感谢您对此查询的帮助。我的数据库 (Oracle) 有一个名为 MOVIES 的 table 字段,如 idtitle .然后是另一个 SCORES,它具有 movie_idscore 等字段。这是一个一对多的关系。

现在,我正在寻找一种获得 SELECT 的方法,它将给我如下所示的结果:

movie-title, avg(score where movie.id=scores.movie_id)

乍一看很简单,但我过不去。有什么建议吗?

您只需要 joingroup by 如下:

Select m.title, avg(s.score)
From movies m join scores s
On m.id = s.movie_id
Group by m.id, m.title

首先,您需要加入 pk/fk

上的表

然后,为了获得每部电影的平均值,您需要使用组并指定您想要的列(分数)。

在这种情况下,我们按 id 分组,因为它是唯一的,按电影标题分组,因为它在 select 子句中

select m.title, avg(s.score)
from movie m
inner join scores s
on m.id = s.movie_id
group by m.id, m.title