当前位置: 首页 > 知识库问答 >
问题:

在SQL中,我是否可以得到一组数字的平均值,但只针对那些有匹配标签的记录?

吴谦
2023-03-14

我有两个MySQL表,一个包含关于项目的信息(称为item),另一个包含这些项目的客户评论(称为review)。

项包含作为基于文本的主键的标签以及一些其他属性。Review包含一个自动递增的reviewID,以及作为外键的项目标签,然后是一个Review得分(满分5分)。

例如:

Item
| LABEL | INFO_1 | INFO_2 | etc|
  book    fict     2010
  book2   nonfic   1997
...

Review
| REVIEWID | LABEL | SCORE |
  001        book     4
  002        book     5
  003        book2    5

我想创建一个视图,这样我就可以看到每个项目的平均审阅分数。我已尝试选择

AVG(review.score) AS avgscore 

但它返回系统中每个评审的相同平均值,而不按项目标签将其分开。我是否需要进行某种连接或添加进一步的参数?抱歉,如果这是个愚蠢的问题。我对MySQL并不是特别流利。

我想要的结果如下所示:

AverageScoreView
| LABEL | AVGSCORE |
  book      4.5
  book2      5

共有1个答案

裴宏壮
2023-03-14

您可以使用:

   SELECT LABEL, AVG(SCORE) AS AVGSCORE
    FROM Review
    GROUP BY LABEL
 类似资料: