본문 바로가기

Learning/SQL

서브쿼리 - 다중열

<서브쿼리 - 다중열>

 

  • 여러 개의 컬럼을 검색하는 서브 쿼리

1
2
3
SELECT [DISTINCT] 컬럼, 컬럼...
FROM 테이블
WHERE (컬럼1, 컬럼2,...) IN (SELECT 컬럼1, 컬럼2,... FROM 테이블);
cs

 

 

 

  • first_name이 'Bruce'인 직원의 manager_id와 job_id가 같은 직원들을 조회. 단 first_name이 Bruce인 직원 정보는 제외 (first_name이 Bruce인 직원의 manager_id는 103, job_id는 IT_PROG)

1
2
3
4
5
6
SELECT employee_id, first_name, job_id, salary, manager_id
FROM employees
WHERE (manager_id, job_id) IN (SELECT manager_id, job_id
                               FROM employees
                               WHERE first_name='Bruce')
    AND first_name <> 'Bruce';
cs

 

 

 

 

  • 부서별로 최소 급여를 받는 사원의 부서번호, 사원번호, 이름 급여 정보 검색

1
2
3
4
5
6
7
8
SELECT department_id 부서번호, employee_id 사원번호,
       last_name 이름, salary 급여
FROM employees
WHERE (department_id, salary) IN
       (SELECT department_id, MIN(salary)
        FROM employees
        GROUP BY department_id)
ORDER BY department_id;
cs

 

 

 


 

 

<서브쿼리 - 다중열 예제>

  • employees 테이블에서 job_id별로 가장 낮은 salary가 얼마인지 찾아보고, 찾아낸 job_id별 salary에 해당하는 직원의 first_name, job_id, salary, department_id를 출력 (salary 내림차순 정렬)

1
2
3
4
5
6
7
SELECT first_name, job_id, salary, department_id
FROM employees
WHERE (job_id, salary) IN
        (SELECT job_id, MIN(salary)
        FROM employees
        GROUP BY job_id)
ORDER BY salary DESC;
cs

 

 

 

 

 

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

트랜잭션  (0) 2020.06.19
집합연산자 (UNION, INTERSECT, MINUS)  (0) 2020.06.18
서브쿼리 - 다중행  (0) 2020.06.18
서브쿼리 - 단일행  (0) 2020.06.18
조인 (JOIN) - 리뷰 및 예제  (0) 2020.06.18