코드 11-4의 첫 번째 서브쿼리인 tmp는 코드 9-13 쿼리에서 사용한 파생 테이블 서브쿼리를 그대로 옮겨온 것으로, 부서별 사원들의 총 급여를 구하는 쿼리입니다. 9장에서는 이 서브쿼리에서 구한 총 급여에 AVG() 함수로 부서 전체의 평균 급여를 구했는데, 여기서는 부서 전체의 평균 급여를 dept_avg란 이름의 서브쿼리로 만들었습니다. 그리고 마지막에 있는 메인쿼리에서 tmp와 dept_avg를 카티전 곱으로 조회해 부서별 총 급여와 부서 전체의 평균 급여를 함께 보여 줍니다. 부서별 총 급여와 부서 전체의 평균 급여를 같이 조회하면 두 값을 비교할 수 있어서 어느 부서가 평균보다 위인지 아래인지 파악할 수 있습니다.
이처럼 CTE를 사용하면 복잡한 쿼리를 좀 더 간단히 작성해서 원하는 정보를 조회할 수 있습니다.