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

在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
 类似资料:
  • 我想计算最接近数组平均数的数字,我已经计算完平均数,但我不知道如何找到最接近平均数的数字。 }

  • 我有一个我正在存根的函数,它被调用多个参数。我只想检查第一个参数。其余的都是回调函数,所以我想把它们放在一边。因此,我可能有以下2个调用,以ajax为例: 我不能使用< code>method.get.calls...因为它不会区分第一个< code>get(25)和第二个< code>get(10)。但是如果我使用< code>method.get.withArgs(25)。打电话...那么它也

  • 我试图使用下面的代码来计算用户输入的一组值的平均值,并将其显示在中,但它不能正常工作。例如,用户输入7、4和5,程序显示1作为平均值,而它应该显示5.3

  • 代码应该得到第一个数字之后的数字的平均值,所以对于第一行[3 1 2 3],平均值是2.0,因为(1 2 3=6/3=2.0),但代码只给了我0。

  • 我想让没有学过杰伦教授的任何课程的学生。从下面的表格中,所有的学生至少有一门课程是由杰伊教授的。因此,查询需要返回空值。 由于Phil()参加了Jay教授的课程,我原本以为它会返回空记录。因为他有两门课程,由Gloria担任讲师,所以它会返回Phil。我不知道如何从一组类似记录(相同,不同)中检查任何记录是否与某个

  • 我想通过在动词前加一个“X”来标记动词在句子中的位置。我的函数采取以下步骤来实现这一点。 找到动词。我使用spaCy进行POS标记。SpaCy输出一个我称之为的POS标签列表,其中句子中的每个单词都表示为一个标签。 将句子也转换为列表。 确定POS列表中动词标签(例如)的索引。 在索引处插入所需的“X”标记到句子列表中。 第4步假设列表的长度与句子列表的长度相同。通常情况下是这样的,除非spaCy