① 查询选课在2门以上且各门课程期末成绩均高于85分的学生的学号及其总成绩,查询结果按总成绩的降序进行排序
时间: 2024-05-10 14:14:32 浏览: 28
好的,根据您的要求,可以使用如下SQL语句进行查询:
```
SELECT 学号, SUM(成绩) AS 总成绩
FROM 成绩表
WHERE 课程编号 IN (
SELECT 课程编号
FROM 成绩表
WHERE 成绩 > 85
GROUP BY 课程编号
HAVING COUNT(*) >= 2
)
GROUP BY 学号
HAVING COUNT(*) >= 2 AND MIN(成绩) > 85
ORDER BY 总成绩 DESC;
```
这个查询语句中,首先使用子查询查询出期末成绩高于85分的课程编号,并使用HAVING子句保证了查询结果中至少有两门这样的课程。然后外层查询再次使用HAVING子句保证了查询结果中至少有两门这样的课程,并且每门课程的成绩都高于85分。最后使用SUM函数求出每个学生的总成绩,并按照总成绩的降序进行排序。
相关问题
求选课在三门以上且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出。
可以使用如下 SQL 语句来实现该查询:
```
SELECT student_id, SUM(score) AS total_score
FROM student_scores
WHERE score >= 60
GROUP BY student_id
HAVING COUNT(subject) >= 3
ORDER BY total_score DESC;
```
在上述 SQL 语句中,首先使用 WHERE 子句筛选出及格的成绩,然后使用 GROUP BY 子句按照学生 ID 进行分组,并且使用 HAVING 子句筛选出选课门数大于等于 3 门的学生。最后使用 SUM 聚合函数计算每个学生的总成绩,并按照总成绩降序排序。
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的学生,然后在主查询中统计这些学生的平均成绩和选课门数,并按照平均成绩降序排列。