如何生成 SQL 查询,其中包含来自不同表的电影的平均得分?
How can I generate SQL query with average score for movie from different tables?
非常感谢您对此查询的帮助。我的数据库 (Oracle) 有一个名为 MOVIES 的 table 字段,如 id 和 title .然后是另一个 SCORES,它具有 movie_id 和 score 等字段。这是一个一对多的关系。
现在,我正在寻找一种获得 SELECT 的方法,它将给我如下所示的结果:
movie-title, avg(score where movie.id=scores.movie_id)
乍一看很简单,但我过不去。有什么建议吗?
您只需要 join
和 group 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
非常感谢您对此查询的帮助。我的数据库 (Oracle) 有一个名为 MOVIES 的 table 字段,如 id 和 title .然后是另一个 SCORES,它具有 movie_id 和 score 等字段。这是一个一对多的关系。
现在,我正在寻找一种获得 SELECT 的方法,它将给我如下所示的结果:
movie-title, avg(score where movie.id=scores.movie_id)
乍一看很简单,但我过不去。有什么建议吗?
您只需要 join
和 group 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