查询1号课程大于90分的学生学号、姓名及平均分大于85分的学生学号、姓名(union)
时间: 2024-12-16 08:30:36 浏览: 6
查询1号课程成绩大于90分的学生信息,包括学号和姓名,以及平均分大于85分的所有学生信息(学号和姓名),可以使用SQL的UNION操作来合并两个查询结果。假设我们有两个表,一个是`student`(包含学号`student_id`,姓名`name`)另一个是`course_scores`(包含学生ID`student_id`,课程ID`course_id`,分数`score`)。以下是SQL查询示例:
```sql
SELECT s.student_id, s.name
FROM student s
JOIN (
SELECT student_id FROM course_scores WHERE course_id = '1' AND score > 90
) high_score_1 ON s.student_id = high_score_1.student_id
-- 第二部分查询
UNION
SELECT s.student_id, s.name
FROM student s
JOIN (
SELECT AVG(score) as avg_score
FROM (
SELECT student_id, score
FROM course_scores
WHERE course_id = '1'
) subquery
GROUP BY student_id
HAVING avg_score > 85
) avg_score_over_85 ON s.student_id = avg_score_over_85.student_id
```
这个查询首先从`course_scores`表中找出1号课程得分超过90分的学生,然后将他们的信息与`student`表联接;接着计算每个学生的1号课程平均分,并筛选出平均分大于85分的学生,再与`student`表进行联接。
阅读全文