查询选修课程数大于等于2的学生的学号、平均成绩和选课门数,并按平均成绩降序排列
时间: 2024-10-26 19:02:41 浏览: 77
查询选修课程数大于等于2的学生的信息通常涉及数据库操作,可以假设有一个包含学生信息和课程选择的表,例如`students`和`courses_taken`。在这个场景下,我们可以编写SQL查询来获取所需的学号、平均成绩和选课门数,并按照平均成绩从高到低排序:
```sql
SELECT s.student_id AS 学号,
AVG(ct.score) AS 平均成绩,
COUNT(*) AS 选课门数
FROM students s
JOIN courses_taken ct ON s.student_id = ct.student_id
GROUP BY s.student_id
HAVING COUNT(*) >= 2
ORDER BY 平均成绩 DESC;
```
这个查询做了以下几件事:
1. `JOIN`将`students`表与`courses_taken`表通过学生ID关联起来。
2. `GROUP BY`按学生ID分组,计算每个学生的平均成绩(`AVG(ct.score)`)和选课数量(`COUNT(*)`)。
3. `HAVING COUNT(*) >= 2`只选择那些选修了至少两门课程的学生。
4. `ORDER BY 平均成绩 DESC`按平均成绩从高到低排序结果。
相关问题
sql sever查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按 平均成绩降序排列。
好的,你可以使用以下 SQL 语句来查询:
```
SELECT 选课表.学号, AVG(成绩) AS 平均成绩, COUNT(*) AS 选课门数
FROM 选课表
WHERE 选课表.学号 IN (
SELECT 学号
FROM 选课表
GROUP BY 学号
HAVING COUNT(*) >= 2
)
GROUP BY 选课表.学号
ORDER BY AVG(成绩) DESC;
```
其中,`选课表` 是你所查询的选课信息表的表名,`学号` 和 `成绩` 是你所需要的字段名。首先在子查询中筛选出选修课程数大于等于2的学生,然后在主查询中统计这些学生的平均成绩和选课门数,并按照平均成绩降序排列。
SQL查询SC数据库表选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按 平均成绩降序排列的代码。
SELECT student_id, AVG(grade) as avg_grade, COUNT(course_id) as num_courses
FROM SC
GROUP BY student_id
HAVING COUNT(course_id) >= 2
ORDER BY avg_grade DESC;
阅读全文