我创建了一个包含以下内容的视图:
student_full_name subject_code result Jennifer Higgins CS1234 81 Jennifer Higgins CS1235 90 Kal Penn CS1234 70 Kal Penn CS1235 60 Han Solo CS1234 45 Han Solo CS1235 70
我想得到:
>每个学生的平均成绩就像詹妮弗希金斯参加CS1234和CS1235一样.
她的平均分数是85.50.
>然后将Jennifer Higgins的分数与所有入学人数的平均分数进行比较
所以总计所有科目的AVG(结果).
>然后查询将列出所有获得高于平均分数的学生.
我知道我必须在这里使用子查询才能获得所有结果的AVG.
嗯,这是一种伪代码.我很困惑,因为我不确定如何使子查询与查询的结果进行比较.
我很确定我需要两个group by语句,一个用于student_full_name分组,另一个用于获得所有平均结果.
SELECT student_full_name,AVG(results) AS average_result FROM viewEnrol WHERE average_result > ( SELECT (AVG(results)) FROM viewEnrol GROUP BY student_full_name
//编辑
输出应该是这样的. Kal Penn和Han Solo没有列出,因为他们没有达到高于平均水平.
所有科目的平均分为69.33. Han Solo得到57.5,Kal Penn得到65.
student_full_name subject_code result Jennifer Higgins CS1234 85.5
有帮助吗?
解决方法
原文地址:https://www.jb51.cc/mssql/84427.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。