실행결과
코드 9-11은 departments, dept_manager, employees 테이블을 내부 조인합니다. 이 쿼리가 반환한 결과 집합의 내용은 파생 테이블을 사용한 코드 9-10의 결과와 같습니다. 이런 결과를 조회하려고 굳이 서브쿼리를 사용할 필요가 없죠.
하지만 파생 테이블을 꼭 사용해야 하는 경우가 있습니다. 하나의 쿼리만으로는 원하는 정보를 추출하거나 조회할 수 없는 경우가 있습니다. 예를 들어, 현재 시점을 기준으로 각 부서에 속한 사원들의 총 급여에 대한 부서별 평균을 구하는 쿼리를 작성한다고 해 봅시다. 일단 departments와 dept_emp 테이블을 조인하면 각 부서에 속한 사원 정보를 알 수 있습니다. 그리고 salaries 테이블과 dept_emp 테이블을 조인하면 사원의 급여를 알 수 있죠. 이렇게 조인하고 부서별로 집계하는 쿼리를 작성하면 되죠. GROUP BY 절에 부서 번호와 부서명을 명시합니다. 그리고 총 사원 수는 COUNT() 함수, 총 급여는 SUM() 함수, 평균은 AVG() 함수로 조회할 수 있습니다. 쿼리를 작성해 볼까요?