求教一个SQL

冷俊不惊 2013-05-05 07:12:01
有两张表emp雇员表和dep部门表
emp表包括:id,name,dep_id,wages(薪水)四个字段
dep表包括:id,name两个字段。
需要得到:薪水大于所在部门平均薪水的人员信息。
...全文
229 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷俊不惊 2013-05-07
  • 打赏
  • 举报
回复
谢谢各位,搞出来了!
liufangdegudu 2013-05-06
  • 打赏
  • 举报
回复
select id,name,dep_id,wages from emp a where a.id= (select id from emp b where b.wages>( select avg(wages) from emp c where b.dep_id=c.deptid group by dep_id));
齐岳 2013-05-06
  • 打赏
  • 举报
回复
Oracle的查询 scott自带三张表:emp dept salgrade ,你看一下这个,很全。点这里
uu_245 2013-05-06
  • 打赏
  • 举报
回复
select e.id, e.name, e.dep_id, a.avgwages from emp e,(select dep_id, avg(wages) avgwages from emp group by dep_id) a where a.dep_id=e.dep_id and e.wages>a.avgwavges;
LCore 2013-05-06
  • 打赏
  • 举报
回复
引用 2 楼 yanrutong 的回复:
好像有点问题。mysql里面报错了。。
哦,我用的oracle数据库 不过应该也不会报错吧,我的那条sql语句你的改改啊 字段都不一样的嘛,只是给你一个思路啊
冷俊不惊 2013-05-06
  • 打赏
  • 举报
回复
好像有点问题。mysql里面报错了。。
zhangyihang1001 2013-05-06
  • 打赏
  • 举报
回复
select name,wages,dep_id,avg(wages) from emp group by dep_id having wages>avg(wages) 没测试过,不知对不对
stella19891231 2013-05-06
  • 打赏
  • 举报
回复
主要考察Group by子句和嵌套查询两个知识点吧 你可以试试下面的代码。 SELECT name FROM emp x where wages >(select avg(wages) from emp y where x.dep_id = y.dep_id group by dep_id); 希望对你有所帮助~
kuchawyz 2013-05-06
  • 打赏
  • 举报
回复
select id, name ,dep_id from emp e1,dep d1 where e1.dep_id=d1.id and salary>(select avg(salary) avgsa,dep_idfrom emp e1,dep d1 where e1.dep_id=d1.id group by dep_id) group by dep_id
LCore 2013-05-05
  • 打赏
  • 举报
回复
引用 楼主 yanrutong 的回复:
有两张表emp雇员表和dep部门表 emp表包括:id,name,dep_id,wages(薪水)四个字段 dep表包括:id,name两个字段。 需要得到:薪水大于所在部门平均薪水的人员信息。
select ename,job,sal from emp ,  
     (  
        select deptno,avg(sal) as avgsal from emp  
        group by deptno   
     ) tmp_dept  
   where emp.deptno=tmp_dept.deptno and sal >tmp_dept.avgsal;  

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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