查询score中选学多门课程的同学中分数为非最高分成绩的记录。
时间: 2024-09-06 14:07:01 浏览: 47
将某班学生的《Python程序设计》这门课程的成绩保存在字典中,学号为键(key),分数为值(value)
要查询score表中选择学习多门课程的同学,但是他们的某门课程分数不是最高的成绩,你可以使用子查询和NOT EXISTS或者IN关键字。下面是一个SQL示例:
```sql
SELECT *
FROM score sc
WHERE student_id IN (
SELECT student_id
FROM (
SELECT student_id, COUNT(DISTINCT course_id) as course_count
FROM score
GROUP BY student_id
HAVING COUNT(DISTINCT course_id) > 1
) multi_courses
)
AND score NOT IN (
SELECT MAX(score)
FROM score
WHERE student_id = sc.student_id
GROUP BY student_id
);
```
这个查询首先找到有多门课程(course_count大于1)的学生(multi_courses子查询),然后从这些学生中筛选出他们的某门课程分数不是他们对应所有课程中的最高分(sc表外连接并排除最高分)。
阅读全文