sql - 计算满足特定条件的不同值
问题描述
我正在制作一张表格,描述多个班级的学生在多次考试中的分数。我想要做的是获得平均分数超过 80 的班级数量。该表如下所示:
Score_summary
班级 | 学生 | 考试 | 分数 |
---|---|---|---|
Class_A | 学生_1 | 考试_A | 90 |
Class_A | 学生_1 | 考试_B | 0 |
Class_A | 学生_2 | 考试_A | 30 |
Class_A | 学生_2 | 考试_B | 40 |
Class_B | 学生_3 | 考试_A | 100 |
Class_B | 学生_3 | 考试_B | 80 |
Class_B | 学生_4 | 考试_A | 80 |
Class_B | 学生_4 | 考试_B | 90 |
到目前为止,我设法获得了符合条件的班级及其各自平均分的表格。如:
班级 | 平均分 |
---|---|
Class_B | 90 |
为了得到这个结果,我尝试了:
Select `Score_summary`.`Class` AS `Class`, avg(`Score_summary`.`Score`) AS `Average_Score`
From `Score_summary`
Group by `Class`
Having `Average_Score` > 80
最后一步是计算我得到的不同课程数量。但我不确定我的想法是否正确。如果是,那么问题将是“有没有办法在拥有后再次选择?” 如果不是,那么这样做的正确方法是什么?
解决方案
添加第二级聚合。
SELECT count(*)
FROM (SELECT ss.class
FROM score_summary ss
GROUP BY ss.class
HAVING avg(ss.score) > 80) x;
推荐阅读
- html - 在 scss 中使用 mixin 使用类的名称来赋予特定的颜色
- css - CSS 结束一个关键帧循环动画并让它重新开始动画
- node.js - Slackbot(节点):icon_emoji 功能不起作用
- reactjs - 从表单字段中获取值
- scala - Scala Play 框架期货
- javascript - 是否有可能在 webpack 中有一个真正动态的 import() ?
- python - AttributeError: 'float' 对象在使用 linregress 时没有属性 'shape'
- dask - 在 map_blocks 中使用 numba 函数
- c# - 检索相对于与指定外部数组属性值配对的指定内部数组属性值的内部数组值
- java - 如何为错误输入日期的用户正确创建循环?