我在这里进行最后的高中评估时有些卡住。
任务本质上是使数据库处理电影信息。
表格: 电影表,电影评论表
我的任务是显示电影及其评论,然后计算并显示平均总体评分。
外观上应该像这样:
示例:
“电影标题” ,“电影评论评分” ,“平均评分”
如何计算每部电影的平均值?
SELECT
`Movie name`,
`Overall Rating`
AVG(`Average Rating`)
FROM
Movie
INNER JOIN `Movie review`
ON Movie.`Movie Ref` = `Movie review`.`Movie Ref`;
答案 0 :(得分:0)
一个选项使用域聚合功能:
选择MovieRatings.MovieTitle,MovieRatings.MovieReviewRating, Round(DAvg(“ MovieReviewRating”,“ MovieRatings”,“ MovieTitle ='”& [MovieTitle]&“'”),1)从MovieRatings获得AverageRating;
或构建汇总查询(打开Access查询构建器,然后单击功能区上的“总计”按钮):
选择MovieRatings.MovieTitle,Avg(MovieRatings.MovieReviewRating)AS 来自MovieRatings GROUP BY的AvgOfMovieReviewRating MovieRatings.MovieTitle;
然后将查询添加到表中
选择MovieRatings.MovieTitle,MovieRatings.MovieReviewRating, Round([AvgOfMovieReviewRating],1)AS平均评分,来自Query1内部 在Query1.MovieTitle = MovieRatings.MovieTitle上加入MovieRatings;
这是两个嵌套在一起的查询:
选择MovieRatings.MovieTitle,MovieRatings.MovieReviewRating, Round([AvgOfMovieReviewRating],1)AS AverageRating自(SELECT MovieRatings.MovieTitle,Avg(MovieRatings.MovieReviewRating)AS 来自MovieRatings GROUP BY的AvgOfMovieReviewRating MovieRatings.MovieTitle)AS Query1 INNER JOIN MovieRatings ON Query1.MovieTitle = MovieRatings.MovieTitle;
通过首先构建并保存聚合查询而创建的嵌套查询。然后构建引用Query1的第二个查询,切换到SQLView并将Query1的SQL语句复制/粘贴到第二个查询中并保存。现在可以删除Query1对象。
在MovieTitle上分组和加入字段,但实际上应该使用数字主键和外键。
请注意,Round()函数使用偶数/奇数规则:9.45四舍五入为9.4和9.35四舍五入为9.4。
建议不要在命名约定中使用空格。
答案 1 :(得分:0)
您可能误解了问题,或者正在猜测数据结构。您不会事先知道平均值。如果您的教授给您提供了预先汇总的平均值的数据,那么他们就不会正确地教您,因为这不是将数据放入数据库的方式。即,如果您输入第一个值并且要插入50,000个值,您将如何知道要在平均列中输入什么?您必须等到所有50,000个值都插入后才能取平均值。然后以该平均值更新50,000行数据。
电影评论表很可能是包含两列的表-“电影标题”和“电影评论评分”。表格中的每一行代表一个评论。在将带有电影评论数据的表插入表后,稍后再进行平均。
插入数据后,将采用类似于以下的平均值:
SELECT MovieTitle, AVG(MovieReviewRating) AS AverageRating
FROM MovieReview
GROUP BY MovieTitle
确认平均值后,您可以将“ Movie Table”作为其列。