select * from dept
where deptno=
(select e.d from(
select deptno d,avg(nvl(sal,0)) a,row_number() over(order by avg(nvl(sal,0)) desc) r from emp group by deptno ) e
where e.r=1) ;
用到的表emp、dept,这样写可以出来结果,感觉有点low,正在学习oracle,看大虾有没有更简洁的方法。
where deptno=
(select e.d from(
select deptno d,avg(nvl(sal,0)) a,row_number() over(order by avg(nvl(sal,0)) desc) r from emp group by deptno ) e
where e.r=1) ;
用到的表emp、dept,这样写可以出来结果,感觉有点low,正在学习oracle,看大虾有没有更简洁的方法。
解决方案 »
- 求教:Enterprise linux 5上安装oracle 10g出现的问题
- 关于查询哪些表包含了指定内容的问题
- oracle如何实现.net网页程序中导出和导入
- oracle 9i 多行转换成1行
- 如何解决oracle一个表2个自增字段啊?
- oracle建表时允许双主键吗?
- Oracle 创建视图 能提高检索速度吗? 需要占用额外的空间吗?
- 我想请问高手们,我要做一个asp+oracle数据库的图书网站,我只会用asp\access和一点sql server,我需要怎样和懂oracle的人配合
- ORACLE9I已经安装完成,客户端如何配置才能使客户端连接到服务器
- 启动OEM时--选择连接到Management Server 后,在OEMC里为何没有数据库啊?点击创建数据库提示:未选择活动的会话!
- SQL两个不同表合到一起
- oracle10g的数据库导入到12c里面就报错,不全导入等等问题
from dept a,
(select deptno,row_number()over(order by avg(nvl(sal,0)) desc) rn from emp)b
where a.deptno = b.deptno
and b.rn = 1
select * from dept
where deptno=
(select e.d from(
select deptno d from emp group by deptno order by avg(nvl(sal,0)) desc) e
where rownum=1) ;
但感觉都差不多了,一个是用row_number(),一个没用row_number()。