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

Oracle高级查询

最赞回答 / 哀幻暝
你说的对,最内层的e1表不需要rownum列

最赞回答 / 勇敢的小点点
我是这样理解的:group by deptno 会把所有数据按部门分成三组,max(avg(sal)) 是把每一组的avg(sal)拿来相比较,得出一个最大值。所以,同时查询deptno和max(avg(sal))时,经过分组,前者返回的是三个值,后者返回一个值。这两个字段无法在同一行显示出来,所以报错。报错所指的不是单组分组函数就是在说deptno字段不是单组数据,要分三组显示。你可以试试改成 select max(deptno),... 应该就不会报错了。个人理解,仅供参考。

最新回答 / 慕斯卡4023414
replace(tablename,charA,newcharA)

已采纳回答 / 慕仰0354868
子查询可以返回单行结果,可以返回多行结果,也可以不返回结果。如果子查询未返回任何行,则主查询也不会返回任何结果

已采纳回答 / 慕仰0354868
 自然连接是在广义笛卡尔积R×S中选出同名属性上符合相等条件元组,再进行投影,去掉重复的同名属性,组成新的关系。即自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。通过别名,将同一张表视为多张表

已采纳回答 / 慕仰0354868
有,内连接最常见的就是等值连接

最新回答 / 大飞007
员工薪水大于自己本部门的平均薪水  这一个问题?<...code...>如果是该问题,avg(sal)是查询所有部门的平均薪水,嵌套select是为了得出本部门的薪水,而且在该查询中,不能使用avg(sal),原因是:ORA-00937: 不是单组分组函数

最赞回答 / 慕UI9017045
select c.ci_id,wm_concat(s.stu_name)from pm_ci c,pm_stu swhere instr(c.stu_ids,s.stu_id)>0group by ci_id;

已采纳回答 / 慕粉4296478
改成这个样子就可以了select  deptno, (select min(sal) from emp where deptno = e.deptno) from emp egroup by deptnohaving (select min(sal) from emp where deptno = e.deptno ) > (select min(sal) from emp where deptno =20);
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消