如何查找特定记录的平均值

时间:2018-07-20 16:41:46

标签: sql ms-access

我在这里进行最后的高中评估时有些卡住。

任务本质上是使数据库处理电影信息。

表格: 电影表,电影评论表

我的任务是显示电影及其评论,然后计算并显示平均总体评分。

外观上应该像这样:

示例:

“电影标题” “电影评论评分” “平均评分”

  1. 泰坦尼克号,9,8.6
  2. 泰坦尼克号,8,8.6
  3. 泰坦尼克号,9,8.6
  4. 星球大战,4,5
  5. 星球大战,5,5
  6. 星球大战,6,5
  7. Matrix,6,8.3
  8. Matrix,10,8.3
  9. 矩阵,9,8.3

如何计算每部电影的平均值?

SELECT
    `Movie name`,
    `Overall Rating`
    AVG(`Average Rating`)
FROM
   Movie
   INNER JOIN `Movie review`
   ON Movie.`Movie Ref` = `Movie review`.`Movie Ref`;

2 个答案:

答案 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”作为其列。