用sql语言写 统计有学生选修的课程的门数。 (2) 计算“c01”课程的平均成绩。 (3) 查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列。
时间: 2024-03-14 15:45:01 浏览: 44
(1) 统计有学生选修的课程的门数:
```
SELECT COUNT(DISTINCT course_id) AS course_num
FROM student_course;
```
(2) 计算“c01”课程的平均成绩:
```
SELECT AVG(score) as avg_score
FROM student_course
WHERE course_id = 'c01';
```
(3) 查询选修了“c03”课程的学生的学号及其成绩,查询结果按分数降序排列:
```
SELECT student_id, score
FROM student_course
WHERE course_id = 'c03'
ORDER BY score DESC;
```
相关问题
在成绩表中查询至少选修课课程号为c01.c02的学生学号和姓名
好的,我理解了你的问题。根据你的要求,我可以给出以下 SQL 查询语句:
```sql
SELECT s.s_id, s.s_name
FROM student s
WHERE EXISTS (
SELECT *
FROM score sc
WHERE sc.s_id = s.s_id
AND sc.c_id IN ('c01', 'c02')
GROUP BY sc.s_id
HAVING COUNT(DISTINCT sc.c_id) >= 2
)
```
这个查询语句中,我们首先在 `score` 表中找到所有选修了课程号为 `c01` 或 `c02` 的成绩记录,然后按学生 ID 分组,只保留选修了这两门课的学生,最后再在 `student` 表中找到这些学生的学号和姓名。
从视图sc_view2中查询出学号为“20050101”、课程号为“C01”的学生选修成绩的信息。
好的,您可以使用以下 SQL 查询语句来从名为`sc_view2`的视图中查询出学号为“20050101”、课程号为“C01”的学生选修成绩信息:
```
SELECT *
FROM sc_view2
WHERE 学号 = '20050101' AND 课程号 = 'C01';
```
这个查询语句会从包含学生选修成绩信息的视图`sc_view2`中选取学号为“20050101”、课程号为“C01”的行,并返回所有列的信息。您可以根据需要修改查询语句来选择需要的特定列。