10-25 查询所有学生的平均成绩 分数 10 作者 张庆 单位 集美大学 本题目要求编写SQL语句, 在stu表 和 sc表 中查询所有学生的平均成绩,如果某学生尚未选修课程或成绩为空时,平均分计为0。
时间: 2024-05-21 07:09:49 浏览: 477
可以使用如下SQL语句查询所有学生的平均成绩:
```
SELECT stu.s_id, IFNULL(AVG(sc.score), 0) AS avg_score
FROM stu
LEFT JOIN sc ON stu.s_id = sc.s_id
GROUP BY stu.s_id;
```
其中,使用LEFT JOIN关联stu表和sc表,使用IFNULL函数将空值替换为0,使用AVG函数计算平均成绩,并使用GROUP BY进行分组操作。
相关问题
10-24 查询部分专业的学生 分数 10 作者 张庆 单位 集美大学 本题目要求编写SQL语句, 检索出 stu表中‘计算机工程’或‘软件工程’专业的学生的记录,结果集按学号升序排序。
根据您提供的信息,可以使用如下的SQL语句来检索出符合要求的学生记录并按学号升序排序:
```
SELECT * FROM stu WHERE major='计算机工程' OR major='软件工程' ORDER BY sno ASC;
```
其中,`stu`是学生表的表名,`major`是专业字段的名称,`sno`是学号字段的名称。这条SQL语句会检索出专业为“计算机工程”或“软件工程”的学生记录,并按学号升序排序。
10-226 查找课程选修的情况 分数 10 作者 张庆 单位 集美大学 本题目要求编写SQL语句, 查找所有开设的课程及被学生选修的情况(选课人数,最高成绩,最低成绩,平均成绩),如某门课程尚未有学生选修时也要列出来。
根据您的描述,这是一个数据库查询的问题,特别是针对教学管理系统中的数据。对于查询"10-226"课程的所有选修信息,假设我们有一个包含课程信息和选课信息的数据库,可以使用SQL语句类似这样:
```sql
SELECT
c.course_id AS '课程编号',
c.course_name AS '课程名称',
COUNT(s.student_id) AS '选修人数',
MAX(sc.score) AS '最高成绩',
MIN(sc.score) AS '最低成绩',
AVG(sc.score) AS '平均成绩'
FROM
courses c
LEFT JOIN
student_courses sc ON c.course_id = sc.course_id
LEFT JOIN
students s ON sc.student_id = s.student_id
WHERE
c.course_id = '10-226'
GROUP BY
c.course_id, c.course_name;
```
这个SQL语句做了以下几个步骤:
1. 从`courses`表中选取`course_id`和`course_name`字段作为课程的基本信息。
2. 使用`LEFT JOIN`将`courses`表与`student_courses`(记录学生选课信息)和`students`表连接,这样即使没有学生选修也能列出课程。
3. `WHERE`子句指定我们要查询的是课程ID为"10-226"的课程。
4. `COUNT`, `MAX`, `MIN`, 和 `AVG`函数分别计算选修人数、最高分、最低分和平均分。
5. `GROUP BY`按照课程ID和名称分组,确保每个课程的数据汇总在一起。
请注意,具体的字段名和表结构可能因实际数据库的不同而有所差异。如果"10-226"不存在或者没有选修记录,结果中的相应计数和成绩值会显示为NULL。
阅读全文
相关推荐
















