为了账号安全,请及时绑定邮箱和手机立即绑定

sql server 中having中的聚合函数只能是select中有的?

sql server 中having中的聚合函数只能是select中有的?

偌晴思雅 2016-11-05 17:20:08
2、查询学生平均分大于60分的课程编号、课程名称select 课程编号,课程名称from 课程表where 课程编号=(select 课程编号,avg(成绩) from 成绩表  group by 课程编号 having avg(成绩)>60)这样写是不是有问题啊???
查看完整描述

3 回答

已采纳
?
Necolas1234

TA贡献1条经验 获得超2个赞

应该没错吧。 如果同是学生的话这应该是个书上的知识点。 书上原题是平均分大于九十那个 只要使用了聚合函数,就要用having 如果有错误请指正,谢谢
查看完整回答
2 反对 回复 2016-11-06
?
华云

TA贡献3条经验 获得超1个赞

有问题。select 课程编号,avg(成绩) from 成绩表 group by 课程编号 having avg(成绩)>60这条语句的查询结果是多条,=只能是一条,另外课程编号是一列而你却用两列来匹配,这两点都不符合。

你可以这样写:

select 课程编号,课程名称 from 课程表

where 课程编号 in (

select 课程编号 from 成绩表 

group by 课程编号 having avg(成绩)>60

)

查看完整回答
反对 回复 2016-11-23
?
qq_将下无人_0

TA贡献4条经验 获得超1个赞

在sqlserver环境下测试一下不就可以了么。。。现在都用oracle了

查看完整回答
反对 回复 2016-11-05
  • 3 回答
  • 0 关注
  • 1955 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信