티스토리 뷰

--< 다중 컬럼 서브쿼리 >  
-- 서브쿼리에서 여러 개의 컬럼값을 검색하여 메인쿼리의 조건절과 비교하는 서브쿼리
-- 컬럼을 쌍으로 묶어서 동시에 비교하는 pairwise 방식
-- 컬럼별로 나누어 비교하고 나중에 AND 연산으로 처리하는 unpairwise 방식

SELECT last_name, department_id, salary
FROM employees
WHERE (department_id, salary) IN ( SELECT department_id, MAX(salary)
                                    FROM employees
                                    GROUP BY department_id )
ORDER BY 2;




-- < 인라인 뷰( in-line view ) > --
-- FROM 절에서 사용하는 서브쿼리
-- FROM절에서 참조하는 테이블의 크기가 클 경우에 필요한 행과 컬럼만으로 구성된 집합을
-- 재정의하여 쿼리문을 효율적으로 사용할 수 있는 장점


-- 사원 테이블과 부서 테이블에서 부서별 월급 총합과 평균 그리고 부서별 인원수를 출력

SELECT e.department_id , SUM(salary) 총합, AVG(salary) 평균, COUNT(*) 인원수
FROM employees e , departments d            -- 107개, 27개
WHERE e.department_id = d.department_id
GROUP BY e.department_id
ORDER BY 1;


-- 인라인 뷰 이용

SELECT e.department_id, 합계, 평균, 인원수
FROM ( SELECT department_id, SUM(salary) 합계, AVG(salary) 평균 ,
 COUNT(*) 인원수 
 FROM employees
 GROUP BY department_id ) e, departments d      -- 12개와 27개
WHERE e.department_id = d.department_id
ORDER By 1;

'DB > SQL' 카테고리의 다른 글

SQL - DDL  (0) 2023.07.31
SQL - DML  (0) 2023.07.31
SQL - 단일행/복수행 서브쿼리  (0) 2023.07.30
SQL - 서브쿼리(sub query)  (0) 2023.07.28
SQL - 그룹함수  (0) 2023.07.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함