【发布时间】:2017-11-13 21:14:10
【问题描述】:
我有两张桌子:Movies 和 Reviews。
Movies 具有以下列:ID、Title、Genre、Duration;
Reviews 具有 ID、描述、Movie_ID(引用电影的 ID)和等级。
我想按平均值显示电影的顶部。 (我想显示电影的标题以及它的平均成绩。)
我尝试了 2 个子查询:一个选择标题,一个从评论中获取 AVG(与电影一起),但我不知道如何将 SELECT AVG(GRADE)... 的结果提供给 SELECT TITLE FROM MOVIES ...。
我在尝试正确的方法吗?
Movies
ID TITLE GENRE DURATION
1 Movie_name_1 Sci-fi 120
2 Movie_name_2 Comedy 100
3 Movie_name_3 Drama 140
4 Movie_name_4 Sci-fi 105
Reviews
ID Description Movie_id Grade
1 WOW 1 10
2 SUCH 2 9
3 Great 3 9
4 Amazing 2 10
5 Decent 4 7
6 Legendary 2 10
7 Waste 3 4
8 hmmm 1 6
预期结果:
Movie_name_1 9.50
Movie_name_2 9.25
Movie_name_3 8.25
Movie_name_4 7
【问题讨论】:
-
您使用的是哪个DBMS 产品?后格雷斯?甲骨文? “SQL”只是一种查询语言,并不是特定数据库产品的名称。
-
请Edit您的问题并添加一些sample data 和基于该数据的预期输出。 Formatted text 请no screen shots。 edit 您的问题 - 请不要在 cmets 中提供邮政编码或其他信息。
-
这似乎是一个简单的
INNER JOIN、group by和avg()聚合。你试过什么,什么不起作用?不,我不会有两个查询。现在我看不出您的预期结果如何与您对 movie_name_1 的 10+6 = 16/2 =8 的数据相匹配,但您有 9.5... -
我不知道我可以在与电影标题相同的选择中从评论中选择评分的 AVG,这让我感到困惑。 (提供的数据只是一个示例,以明确范围,不适合实际平均值)
标签: sql oracle oracle-sqldeveloper