用sql语言查询平均成绩在90分及以上的课程的课程号
时间: 2024-06-06 11:08:31 浏览: 10
由于没有提供具体的数据表结构,以下是基于常见的学生成绩表和课程表的查询语句示例:
SELECT course_id
FROM course
WHERE course_id IN (
SELECT course_id
FROM score
GROUP BY course_id
HAVING AVG(score) >= 90
)
相关问题
用sql语言查询每门课的学生数、最高成绩、最低成绩、平均成绩(输出课程号、课程名、学生数、最高成绩、最低成绩、平均成绩
假设我们有两张表,一张是学生表,包含学生的学号和姓名;另一张是成绩表,包含学生的学号、课程号、分数。
我们可以使用如下的 SQL 查询语句来查询每门课的学生数、最高成绩、最低成绩、平均成绩:
```sql
SELECT c.课程号, c.课程名, COUNT(*) AS 学生数, MAX(s.分数) AS 最高成绩, MIN(s.分数) AS 最低成绩, AVG(s.分数) AS 平均成绩
FROM 成绩表 s
JOIN 课程表 c ON s.课程号 = c.课程号
GROUP BY c.课程号, c.课程名;
```
其中,使用了 JOIN 操作将成绩表和课程表连接起来,使用了 COUNT、MAX、MIN 和 AVG 聚合函数来计算学生数、最高成绩、最低成绩和平均成绩,并使用了 GROUP BY 子句按照课程号和课程名进行分组。
用sql语言查询指定学生的成绩单、总分、平均分、排名;
假设有三个表:`students`(学生信息表,包括学生的姓名和学号)、`courses`(课程信息表,包括课程的名称和编号)和`scores`(成绩表,包括学生的学号、课程的编号和成绩)。
以下是查询指定学生的成绩单、总分、平均分、排名的 SQL 语句:
```sql
-- 假设想查询学号为 1001 的学生的成绩单、总分、平均分、排名
-- 首先查询该学生的成绩单
SELECT courses.course_name, scores.score
FROM students
JOIN scores ON students.student_id = scores.student_id
JOIN courses ON scores.course_id = courses.course_id
WHERE students.student_id = 1001;
-- 接着查询该学生的总分和平均分
SELECT SUM(scores.score) AS total_score, AVG(scores.score) AS avg_score
FROM students
JOIN scores ON students.student_id = scores.student_id
WHERE students.student_id = 1001;
-- 最后查询该学生的排名
SELECT COUNT(*) + 1 AS rank
FROM (
SELECT students.student_id, SUM(scores.score) AS total_score
FROM students
JOIN scores ON students.student_id = scores.student_id
GROUP BY students.student_id
HAVING total_score > (
SELECT SUM(scores.score)
FROM students
JOIN scores ON students.student_id = scores.student_id
WHERE students.student_id = 1001
)
) AS tmp;
```
需要注意的是,以上 SQL 语句中的表名、列名等需要根据具体的数据库结构进行修改。此外,如果存在多个学生的成绩相同时,排名会并列,因此需要根据具体需求进行调整。