본문 바로가기
[ Computer Science ]/Database_sql

[Database/MySQL] subquery 활용 연습 (2) from 조건에 중첩

by dev charlotte 2024. 11. 7.

0. 문제 공통 조건

해당 테이블을 이용해서 소속 부서의 평균보다 급여가 높은 직원들을 출력하는 쿼리를 작성할 것

 

1. from을 활용하는 상호 연관 중첩 서브쿼리 (correlated nested subquery)

1. subquery

(SELECT 부서명, AVG(월급) 부서평균월급 
 FROM 직원
 GROUP BY 부서명) A

 

서브쿼리에서는 

직원 테이블에서 각 부서의 월급의 평균을 계산하고 

부서명을 기준으로 그룹화해서 새로운 결고 테이블을 생선하다

 

부서 평균 원급 이라는 명칭의 열을 추가해서 결과를 보여두록한다

 

 

2. main and sub

SELECT 사번, 월급, 부서명
FROM 직원 NATURAL JOIN 
     (SELECT 부서명, AVG(월급) 부서평균월급 
      FROM 직원
      GROUP BY 부서명) A
WHERE 월급 > 부서평균월급;

 

기존의 직원 테이블과 서브쿼리로 새로 형성한 부서 평균 월급을

결합하는 쿼리

 

각 부서의 평균 월급을 계산해서 A라는 별칭의 임시 테이블을 얻은 상태

 

메인 쿼리는 직원 테이블과 각 부서의 평균 월급을 계산한 테이블을

부서명을 기준으로 자연조인으로 결합한다

 

결합한 후에는 모든 행 중 부서 평균 월급보다 월급이 높은 경우의 행만

결과에 나타날 것이다

 

 

728x90