计算机系学生选课情况统计:SQL查询语句解析
计算机系学生选课情况统计:SQL查询语句解析
本示例使用SQL语句统计计算机系学生的选课情况,并根据选课门数对选课情况进行分类。
假设有以下表格:
表名:学生选课表(student_course)
| 字段名 | 数据类型 | 说明 | |---|---|---| | id | int | 学生id | | course_id | int | 课程id |
表名:课程表(course)
| 字段名 | 数据类型 | 说明 | |---|---|---| | id | int | 课程id | | name | varchar | 课程名称 |
表名:学生表(student)
| 字段名 | 数据类型 | 说明 | |---|---|---| | id | int | 学生id | | name | varchar | 学生姓名 |
可以使用以下SQL语句进行查询:
SELECT sc.id, COUNT(sc.course_id) AS course_num,
CASE
WHEN COUNT(sc.course_id) >= 3 THEN '多'
WHEN COUNT(sc.course_id) >= 1 AND COUNT(sc.course_id) <= 2 THEN '一般'
ELSE '少'
END AS course_status
FROM student_course sc
INNER JOIN student s ON sc.id = s.id
GROUP BY sc.id
ORDER BY sc.id;
解释:
- 使用
INNER JOIN将学生选课表和学生表进行连接,以便获取学生的姓名。 - 使用
COUNT函数统计每个学生选课的门数。 - 使用
CASE语句根据选课门数判断选课情况,将其分为'多'、'一般'、'少'。 - 使用
GROUP BY将结果按学生id分组,以便对每个学生进行统计。 - 使用
ORDER BY按学生id排序,使结果更加清晰。
示例结果:
| 学号 | 选课门数 | 选课情况 | |---|---|---| | 1 | 3 | 多 | | 2 | 1 | 一般 | | 3 | 0 | 少 |
该查询语句可以有效地统计计算机系学生的选课情况,为教学管理和学生学习提供参考。
原文地址: https://www.cveoy.top/t/topic/oyus 著作权归作者所有。请勿转载和采集!