mysql - 在 SQL 中,我可以得到一组数字的平均值,但只针对那些具有匹配标签的记录?
问题描述
我有两个 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
我想创建一个视图,以便我可以看到每个项目的平均评论分数。我试图选择
AVG(review.score) AS avgscore
但这会返回系统中每条评论的相同平均值,而不是按项目标签分隔。我是否需要进行某种加入或添加更多参数?对不起,如果这是一个愚蠢的问题。我对 MySQL 并不是很流利。
我想要的结果如下所示:
AverageScoreView
| LABEL | AVGSCORE |
book 4.5
book2 5
解决方案
您可以使用:
SELECT LABEL, AVG(SCORE) AS AVGSCORE
FROM Review
GROUP BY LABEL
推荐阅读
- grammar - 有人可以帮我将语法转换为正则表达式
- java - 错误:需要类、接口或枚举(实现 java)
- r - 带有字符串的嵌套 ifelse 语句
- apache - .htaccess [OR] 条件未满足导致意外的 RewriteRule
- unit-testing - 在项目 VS2017 上不再检测到单元测试
- html - 如何使用 sass 将父 div 定位在子 div 的焦点上。?
- python - Softmax 回归 - 验证和测试预测显示没有改善
- restsharp - RestSharp - 序列化和“[XmlAttribute]”
- excel - 如何将逗号分隔的数据导出到excel表,但每一行都是一个新的excel表
- svn - 将 svn update 恢复到以前的 BASE 版本