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

Oracle高级查询

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

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

最新回答 / 大飞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;

最新回答 / 针尖上的天使_0002
我的理解是当mrg=null时,他就相当于公司的董事长但是他是属于公司的员工,所以用自连接加左连接就能实现想要的结果:select e.ename 员工姓名 ,e1.ename 老板姓名 from emp e,emp e1 where e.MGR=e1.empno(+);

最赞回答 / 万夫莫敌
select max(avg_sal) from (select deptno,avg(sal) avg_sal from emp group by deptno);

最新回答 / CrispinWang
我觉得要根据实际情况看吧,

最赞回答 / danteliujie
不会混乱,rownum是伪列,不是真实的数据这里会自动列成1.2.3.4这样的递增,老师讲课中有提到这一点

最新回答 / sin丶
老师讲的课十分到位,解决了我不少疑问,Thanks

最新回答 / pool佬Ik
不是网速的问题,要是实在卡的不行,下载下来再看

最新回答 / Zikor
select ci.ci_id CID,wm_concat(case when instr(stu_ids,stu.stu_id) > 0 then stu.stu_name end) SNAMEfrom pm_ci ci,pm_stu stugroup by ci.ci_id
课程须知
小伙伴们,学习本课程前需要掌握Oracle的语法基础,并且对Oracle的函数有所了解。如不了解这两部分内容,请移步《Oracle数据库开发必备利器之SQL基础》和《Oracle数据库开发利器之函数》两门教程。
老师告诉你能学到什么?
1、掌握分组查询 2、掌握多表查询 3、掌握子查询

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消