【发布时间】:2013-11-02 11:01:08
【问题描述】:
考虑以下电影数据库:
我正在尝试回答以下问题:
找出 1980 年之前发行的电影的平均评分与 1980 年之后发行的电影的平均评分之间的差异。(确保计算每部电影的平均评分,然后计算 1980 年之前的电影和之后的电影的平均值. 不要只计算 1980 年前后的整体平均收视率。)
我写了以下内容:
SELECT Movie.title, avg(Rating.stars), Movie.year
FROM Movie
INNER JOIN Rating ON Movie.mID = Rating.mID
INNER JOIN Reviewer ON Reviewer.rID = Rating.rID
GROUP BY Rating.mID, Movie.year
ORDER BY year
这给出了每部电影的平均评分。我是否需要编写两个子查询来获得 1980 年前后平均值的差异?
【问题讨论】:
-
您的查询结果是每年每部电影的平均评分(假设您的 JOIN 正确)。
-
您可以使用某种 case 语句来推导 1980 年之前/之后,并按此进行分组。
标签: sql