基于上述数据库用SQL语句实现 –4.查询有成绩的学生的学号,姓名,课程名称及成绩信息。 –5.查询每门课程的名称,选修的学生人数及其成绩信息。
时间: 2024-12-12 21:20:24 浏览: 17
当然可以。假设我们有一个名为`students`的表,包含字段如`student_id`, `name`, `course_name`, 和`score`;还有一个`courses`表,用于存储课程信息,但这里假设它包含了课程ID和学生ID关联的信息。以下是两个SQL查询的示例:
1. 查询有成绩的学生的学号、姓名、课程名称及成绩信息:
```sql
SELECT students.student_id, students.name, courses.course_name, students.score
FROM students
JOIN courses ON students.student_id = courses.student_id
WHERE students.score IS NOT NULL;
```
这个查询通过`JOIN`操作连接了`students`和`courses`表,并筛选出那些有成绩的学生。
2. 查询每门课程的名称、选修的学生人数及其成绩信息:
```sql
SELECT courses.course_name, COUNT(DISTINCT students.student_id) as student_count, AVG(students.score) as average_score
FROM students
JOIN courses ON students.student_id = courses.student_id
GROUP BY courses.course_name;
```
这个查询首先按课程名分组(`GROUP BY`),计算每个课程选择的学生人数(`COUNT(DISTINCT students.student_id)`),并计算平均成绩(`AVG(students.score)`)。
阅读全文