此sql咋写?

smc2java 2011-01-06 04:29:13
在oracle自带用户soctt下emp表中:找出所有的雇员,他们挣的薪水高于该部门的平均薪水???这里要注意有个该字!
请帮忙,尽快,3KU!
...全文
159 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
福清仔 2011-01-10
  • 打赏
  • 举报
回复
都是强人
心中的彩虹 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用楼主 smc2java 的回复:]
在oracle自带用户soctt下emp表中:找出所有的雇员,他们挣的薪水高于该部门的平均薪水???这里要注意有个该字!
请帮忙,尽快,3KU!
[/Quote]

select * from emp a
where a.sal>(select avg(sal) from emp b where a.deptno=b.deptno)
smc2java 2011-01-06
  • 打赏
  • 举报
回复
相当不错,谢谢啦!
minitoy 2011-01-06
  • 打赏
  • 举报
回复
SELECT t.*
FROM emp t,(SELECT deptno, AVG(sal) sal FROM emp group by deptno) b
WHERE t.sal >b.sal and t.deptno=b.deptno
careyling 2011-01-06
  • 打赏
  • 举报
回复
楼上的正解
不过也可以这么写
select * from scott.emp t1
where t1.sal > (select sal from
(select deptno,avg(sal) sal from scott.emp group by deptno) t2 where t1.deptno = t2.deptno);
minitoy 2011-01-06
  • 打赏
  • 举报
回复
哈哈,莫笑我,这样其实效率没用表关联高.

SELECT *
FROM emp t,(SELECT deptno, AVG(sal) sal FROM emp group by deptno) b
WHERE t.sal >b.sal and t.deptno=b.deptno ;
[Quote=引用 2 楼 zhuomingwang 的回复:]
引用 1 楼 minitoy 的回复:
SQL code
SELECT *
FROM emp t
WHERE t.sal > (SELECT AVG(b.sal) FROM emp b WHERE t.deptno = b.deptno);

效率非常不错的语句
[/Quote]
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 minitoy 的回复:]
SQL code
SELECT *
FROM emp t
WHERE t.sal > (SELECT AVG(b.sal) FROM emp b WHERE t.deptno = b.deptno);
[/Quote]
效率非常不错的语句

minitoy 2011-01-06
  • 打赏
  • 举报
回复
SELECT *
FROM emp t
WHERE t.sal > (SELECT AVG(b.sal) FROM emp b WHERE t.deptno = b.deptno);

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧