查询每个部门最低工资的雇员信息
如题:
查询每个部门最低工资的雇员信息
关联子查询方法
1 查询每个部门的最低工资
select deptno, min(sal) min_sal from emp group by deptno;
2 同最低工资关联人员信息<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PHByZSBjbGFzcz0="brush:sql;">select e.* from emp e, (select deptno, min(sal) min_sal from emp group by deptno) s
where e.deptno = s.deptno
and e.sal = s.min_sal;
in关键字方法
in关键字是这种场景容易想到的一个方法,先查询出部门的最低工资,然后匹配最低工资的雇员信息。
select * from emp where sal in (select min(sal) from emp group by deptno);
错误解析
in 方法存在一个问题,当两部门中有多个相同的工资值时会产生错误的结果
现在讲emp 中empno 为 1234 的用户部门修改为 20
update emp set deptno = 20 where empno = 1234;
然后再使用in查询方法查部门最低工资的员工信息
这时,empno 为 1234 的员工工资与deptno为10的部门最低工资相同,所以使用in查询就查出了这个最低工资。
但是使用 关联子查询 的方法查询,
综上比较,在类似的查询中,慎用in 关键字直接查询,而要使用关联子查询按部就班的来查。
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。