由于题目中没有给出学生选课的记录表,假设有一个选课记录表'选课表',包含学生选课的信息,其中学号为'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语句的各部分:

  1. 首先使用了JOIN操作将学生表和选课表连接起来,并使用WHERE条件筛选出专业为'计算机系'的学生;
  2. 然后使用GROUP BY对学生表中的学生进行分组(按学号分组),并使用COUNT统计每个学生选了多少门课程;
  3. 最后使用CASE语句根据选课门数判断选课情况,生成'course_status'列。

最终查询结果将包含三列数据:学号、选课门数、选课情况。

查询计算机系学生选课门数及情况 | SQL语句解析

原文地址: https://www.cveoy.top/t/topic/oyuA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录