查询计算机系学生选课门数及情况 | SQL语句解析
由于题目中没有给出学生选课的记录表,假设有一个选课记录表'选课表',包含学生选课的信息,其中学号为'student_id',选课门数为'course_num',选课情况为'course_status',则可以使用以下SQL语句查询'计算机系'每个学生的选课门数和选课情况:
SELECT s.student_id,
COUNT(*) AS course_num,
CASE
WHEN COUNT(*) >= 3 THEN '多'
WHEN COUNT(*) >= 1 AND COUNT(*) < 3 THEN '一般'
ELSE '少'
END AS course_status
FROM 学生表 s
JOIN 选课表 c ON s.student_id = c.student_id
WHERE s.专业 = '计算机系'
GROUP BY s.student_id;
解释一下SQL语句的各部分:
- 首先使用了JOIN操作将学生表和选课表连接起来,并使用WHERE条件筛选出专业为'计算机系'的学生;
- 然后使用GROUP BY对学生表中的学生进行分组(按学号分组),并使用COUNT统计每个学生选了多少门课程;
- 最后使用CASE语句根据选课门数判断选课情况,生成'course_status'列。
最终查询结果将包含三列数据:学号、选课门数、选课情况。
原文地址: https://www.cveoy.top/t/topic/oyuA 著作权归作者所有。请勿转载和采集!