查詢每個部門最低工資的僱員資訊,部門工資僱員資訊

來源:互聯網
上載者:User

查詢每個部門最低工資的僱員資訊,部門工資僱員資訊

如題:

查詢每個部門最低工資的僱員資訊


關聯子查詢方法


1 查詢每個部門的最低工資

select deptno, min(sal) min_sal from emp group by deptno;


2 同最低工資關聯人員資訊

select e.* from emp e, (select deptno, min(sal) min_sal from emp group by deptno) swhere e.deptno = s.deptnoand 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 關鍵字直接查詢,而要使用關聯子查詢按部就班的來查。



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.