【发布时间】:2020-07-16 14:22:04
【问题描述】:
我在下面有一个示例表,我试图让学生人数高于平均分和低于平均分的学生人数。
name subject classroom classarm session first_term_score first_term_grade
std1 math nursery 1A nursery1 2018/2019 90 A
std2 eng nursery 1A nursery1 2018/2019 70 A
std3 sci nursery 1A nursery1 2018/2019 60 B
std1 eng nursery 1A nursery1 2018/2019 64 B
std2 math nursery 1A nursery1 2018/2019 70 A
目标结果表应该是这样的
subject avg_score count_above count_below
math 80 1 1
eng 65.5 2 0
我已经能够编写一个查询来获取高于平均分数的学生姓名,并且可以轻松地对其进行编辑以获取低于平均分数的学生人数。
SELECT name
FROM (SELECT name,
AVG(first_term_score) AS average_result
FROM seveig
GROUP BY name) sa,
(SELECT (AVG(first_term_score)) tavg
FROM seveig) ta
WHERE sa.average_result > ta.tavg
这里的问题是我想在一个表格中添加计数,表明高于和低于平均分数的学生数量。
如果一个数字等于平均分,则可以认为它高于平均分。
【问题讨论】:
标签: mysql sql group-by count window-functions