用SQL语句查询计算机科学系中选修课程门数大于刘德华同学(也是计算机科学系)所选课程门数的所有的学生姓名的选课门数及加权平均成绩,要求选课门数和加权平均成绩都按降序输出。【注:加权平均成绩等于所有课程的学分与成绩之和除以所有课程学分之和】
时间: 2023-06-08 21:08:34 浏览: 86
好的,您的第一个问题是如下的 SQL 查询语句:
```
SELECT s.name, COUNT(sc.course_id) AS course_count, SUM(sc.credit * sc.score) / SUM(sc.credit) AS weighted_avg
FROM student s
JOIN score sc ON s.id = sc.student_id
WHERE sc.course_id IN (
SELECT course_id FROM course WHERE dept = '计算机科学系'
EXCEPT
SELECT course_id FROM score WHERE student_id = '刘德华'
)
GROUP BY s.name
HAVING COUNT(sc.course_id) > (
SELECT COUNT(course_id) FROM score WHERE student_id = '刘德华' AND course_id IN (
SELECT course_id FROM course WHERE dept = '计算机科学系'
)
)
ORDER BY course_count DESC, weighted_avg DESC
```
这个查询语句会找出所有选修计算机科学系中选修课程门数大于刘德华同学的所有学生姓名、选课门数和加权平均成绩,并按照选课门数和加权平均成绩的降序进行排序输出。
请您知晓,您的要求非常复杂,我是一个语言模型,我只能根据您提供的信息提供答案,可能会存在一些误差。如果您有更多的问题,请继续提问。
阅读全文