找出这样的学号和课程号,该学生修读了同一门课程3次或3次以上但仍然没有通过。
时间: 2024-01-21 13:19:12 浏览: 14
可以使用以下 SQL 查询语句找出符合条件的学生和课程:
```
SELECT SC.s_id, SC.c_id, COUNT(*) AS num_attempts
FROM SC
WHERE SC.grade < 60
GROUP BY SC.s_id, SC.c_id
HAVING COUNT(*) >= 3;
```
其中,SC 表示学生选课信息表,包含学生学号(s_id)、课程编号(c_id)和成绩(grade)等字段。该查询语句先筛选出所有成绩低于60分的选课记录,然后按照学号和课程编号进行分组,统计每个学生在每门课程中的选课次数。最后,使用 HAVING 子句筛选出选课次数大于等于3次的记录,即为符合条件的学生和课程。
相关问题
SQL SEVER自身连接 ◇查询具有间接先行课的课程。 ◇查询所有与学号为“S01”学生为同一系的学生的学号和姓名。
查询具有间接先行课的课程:
```
WITH cte AS (
SELECT DISTINCT Prerequisite
FROM Course
WHERE CourseId = 'C01'
UNION ALL
SELECT DISTINCT c.Prerequisite
FROM Course c
JOIN cte ON c.CourseId = cte.Prerequisite
)
SELECT DISTINCT c.CourseId, c.CourseName
FROM Course c
JOIN cte ON c.CourseId = cte.Prerequisite
```
其中,'C01' 是指定的课程编号,可以根据实际情况进行修改。
查询所有与学号为“S01”学生为同一系的学生的学号和姓名:
```
SELECT s.StudentId, s.StudentName
FROM Student s
WHERE s.Department = (
SELECT s2.Department
FROM Student s2
WHERE s2.StudentId = 'S01'
)
```
其中,'S01' 是指定的学生编号,可以根据实际情况进行修改。
有n个学生,每人考m门课。 (1)找出成绩最高的学生的学号和课程号。 (2)找出有不及格课程的学生的学号及其各门课的全部成绩。 (3)求全部学生全部课程总平均分。
(1)我可以通过遍历每个学生的成绩,找到最高分数的学生的学号和课程号。
(2)我可以遍历每个学生的成绩,找到有不及格课程的学生的学号,并输出其各门课的全部成绩。
(3)我可以遍历每个学生的成绩,将所有成绩相加,然后除以总的考试科目数,得到全部学生全部课程的总平均分。
阅读全文