数据库查询选修课程c001的学生人数和该课程有成绩的人数
时间: 2023-11-10 10:24:32 浏览: 50
好的,根据您的要求,我可以为您提供以下 SQL 查询语句来获得选修课程 c001 的学生人数和该课程有成绩的人数:
```
SELECT
COUNT(DISTINCT student_id) AS total_students,
COUNT(DISTINCT CASE WHEN score IS NOT NULL THEN student_id END) AS students_with_score
FROM
Score
WHERE
course_id = 'c001';
```
这个查询语句使用了 COUNT 函数和 DISTINCT 关键词,分别计算选修课程 c001 的学生总人数和有成绩的学生人数。其中,第二个 COUNT 函数使用了 CASE 语句来判断学生是否有成绩,如果有成绩则计入统计中。同时,使用 WHERE 子句来筛选出选修课程为 c001 的记录。
希望这个查询语句能够帮助到您!
相关问题
查询选修课程c001的学生人数和该课程有成绩的人数
好的,以下是查询选修课程c001的学生人数和该课程有成绩的人数的SQL语句:
```
SELECT
COUNT(DISTINCT student_id) AS student_count,
COUNT(DISTINCT CASE WHEN score IS NOT NULL THEN student_id END) AS scored_student_count
FROM
course
WHERE
course_id = 'c001';
```
这将从课程表中选择所有选修课程为c001的记录,并使用DISTINCT关键字计算学生人数和有成绩的学生人数。你可以根据需要修改课程ID和表名。
数据库查询同时选修了c001和c003课程的学生学号
好的,根据您的要求,我可以为您提供以下 SQL 查询语句来获得同时选修了 c001 和 c003 课程的学生学号:
```
SELECT s.student_id
FROM Score AS s
WHERE s.course_id = 'c001' AND s.student_id IN (SELECT student_id FROM Score WHERE course_id = 'c003');
```
这个查询语句使用了子查询,首先在 Score 表中查找选修了 c003 课程的学生,然后使用 IN 子句将这些学生的学号作为一个列表,传递给外层查询,用于筛选同时选修了 c001 课程的学生。最后,使用 SELECT 语句来获取符合条件的学生学号。
希望这个查询语句能够帮助到您!