sql语言聚合函数(算出平均分、最高成绩、最低成绩、用分类聚合给出及格的人数和不及格的人数、对分类聚合汇总算出总人数)
时间: 2023-08-06 07:07:54 浏览: 33
以下是 SQL 语言中常用的聚合函数,可以用于计算平均分、最高成绩、最低成绩等:
1. 平均值(AVG):
```
SELECT AVG(score) FROM table_name;
```
2. 最大值(MAX):
```
SELECT MAX(score) FROM table_name;
```
3. 最小值(MIN):
```
SELECT MIN(score) FROM table_name;
```
为了计算及格和不及格的人数,我们可以使用分类聚合函数(GROUP BY):
1. 给出及格和不及格的人数:
```
SELECT pass, COUNT(*) FROM table_name GROUP BY pass;
```
其中,`pass` 是一个表示是否及格的字段,可以是 1 或 0,`COUNT(*)` 可以统计每个分组中的行数,从而得出及格和不及格的人数。
2. 对分类聚合汇总算出总人数:
```
SELECT category, COUNT(*) FROM table_name GROUP BY category WITH ROLLUP;
```
其中,`category` 是一个分类字段,`WITH ROLLUP` 可以在结果集中添加一个汇总行,显示所有分类的总行数。
注意,以上查询语句中的 `table_name` 需要替换为您实际使用的表名。
相关问题
sql 查询各科成绩最高分最低分
SQL查询各科成绩最高分、最低分和平均分可以使用以下语句:
SELECT courseid, MAX(score) AS '最高分', MIN(score) AS '最低分', AVG(score) AS '平均分' FROM student_score GROUP BY courseid;
其中,courseid是课程ID,score是成绩。使用MAX函数可以得到最高分,MIN函数可以得到最低分,AVG函数可以得到平均分。GROUP BY语句可以按照课程ID分组,得到每个课程的成绩情况。
引用中提到了可以使用MAX(score) AS '最高分', MIN(score)AS '最低分'这种写法,这是因为MAX和MIN函数可以对一列数据进行聚合操作,得到该列数据的最大值和最小值。
引用中的语句在查询各科成绩最高分、最低分和平均分的基础上,还计算了及格率、中等率、优良率和优秀率。其中,及格率是指成绩大于等于60分的学生占总人数的比例,中等率是指成绩在70-80分之间的学生占总人数的比例,优良率是指成绩在80-90分之间的学生占总人数的比例,优秀率是指成绩大于等于90分的学生占总人数的比例。这些比例可以使用SUM和CASE WHEN语句计算得到。
求选课在三门以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。
可以使用如下 SQL 语句来实现该查询:
```
SELECT student_id, SUM(score) AS total_score
FROM student_scores
WHERE score >= 60
GROUP BY student_id
HAVING COUNT(subject) >= 3
ORDER BY total_score DESC;
```
在上述 SQL 语句中,首先使用 WHERE 子句筛选出及格的成绩,然后使用 GROUP BY 子句按照学生 ID 进行分组,并且使用 HAVING 子句筛选出选课门数大于等于 3 门的学生。最后使用 SUM 聚合函数计算每个学生的总成绩,并按照总成绩降序排序。