--< 다중 컬럼 서브쿼리 >
-- 서브쿼리에서 여러 개의 컬럼값을 검색하여 메인쿼리의 조건절과 비교하는 서브쿼리
-- 컬럼을 쌍으로 묶어서 동시에 비교하는 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 |
--< 다중 컬럼 서브쿼리 >
-- 서브쿼리에서 여러 개의 컬럼값을 검색하여 메인쿼리의 조건절과 비교하는 서브쿼리
-- 컬럼을 쌍으로 묶어서 동시에 비교하는 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 |