sql统计各科成绩大于平均分的人_数据分析师SQL面试必备50题
时间: 2024-03-26 12:38:06 浏览: 154
学生平均成绩大于80同表sql
可以使用以下 SQL 查询语句来统计各科成绩大于平均分的人:
```
SELECT subject, COUNT(*) AS num_above_avg
FROM (
SELECT subject, name, score, AVG(score) OVER (PARTITION BY subject) as avg_score
FROM scores
) AS sub
WHERE score > avg_score
GROUP BY subject
```
其中,`scores` 表包含学生的姓名、科目和成绩信息。以上 SQL 查询语句的作用是:
1. 在子查询中,使用 `AVG()` 函数计算每个科目的平均分,并使用窗口函数 `OVER (PARTITION BY subject)` 将结果按科目分组。
2. 将子查询的结果作为一个新的表 `sub`,查询出每个学科成绩大于平均分的学生,并统计人数。
3. 使用 `GROUP BY` 子句将结果按科目分组。
这样就能得到各科成绩大于平均分的人数统计结果。
阅读全文