在 SQL 中,我可以得到一组数字的平均值,但仅限于那些具有匹配标签的记录吗?
In SQL, can I get the average of a group of numbers, but only for those records with matching labels?
我有两个 MySQL 表,一个包含关于项目的信息(称为项目),另一个包含客户对这些项目的评论(称为评论)。
项目包含作为基于文本的主键的标签,以及一些其他属性。
评论包含一个自动递增的评论 ID,以及作为外键的项目标签,然后是一个满分 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
我想创建一个视图,以便查看每个项目的平均评论分数。我试过 select
AVG(review.score) AS avgscore
但是 returns 系统中每条评论的平均值相同,没有按项目标签分开。我是否需要进行某种连接或添加更多参数?对不起,如果这是一个愚蠢的问题。我在 MySQL.
方面不是很流利
我想要的结果如下所示:
AverageScoreView
| LABEL | AVGSCORE |
book 4.5
book2 5
您可以使用:
SELECT LABEL, AVG(SCORE) AS AVGSCORE
FROM Review
GROUP BY LABEL
我有两个 MySQL 表,一个包含关于项目的信息(称为项目),另一个包含客户对这些项目的评论(称为评论)。
项目包含作为基于文本的主键的标签,以及一些其他属性。 评论包含一个自动递增的评论 ID,以及作为外键的项目标签,然后是一个满分 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
我想创建一个视图,以便查看每个项目的平均评论分数。我试过 select
AVG(review.score) AS avgscore
但是 returns 系统中每条评论的平均值相同,没有按项目标签分开。我是否需要进行某种连接或添加更多参数?对不起,如果这是一个愚蠢的问题。我在 MySQL.
方面不是很流利我想要的结果如下所示:
AverageScoreView
| LABEL | AVGSCORE |
book 4.5
book2 5
您可以使用:
SELECT LABEL, AVG(SCORE) AS AVGSCORE
FROM Review
GROUP BY LABEL