SQL

SQL: 인라인뷰

dewstream 2025. 9. 26. 08:00
728x90

※ SQL: Inline view.
 
안녕하세요. 듀스트림입니다.
 
기본기도 중요하죠.
그래서 하나씩 작성해보려고 합니다.
 
오늘 주제는 인라인뷰입니다.


인라인뷰(inline view)FROM 절 안에 작성된 서브쿼리를 의미합니다.

1. 기본 예시

SELECT emp.emp_id, emp.emp_name, dept.dept_name
FROM (
    SELECT employee_id AS emp_id, employee_name AS emp_name, department_id
    FROM employees
    WHERE salary > 5000
) emp
JOIN departments dept
  ON emp.department_id = dept.department_id;
  • employees 테이블에서 급여가 5000 이상인 직원만 먼저 인라인뷰로 만듦 (emp 라는 별칭).
  • 이후 departments 테이블과 조인해서 부서명을 가져옴.

2. 집계와 함께 사용하는 예시

SELECT dept_id, avg_salary
FROM (
    SELECT department_id AS dept_id, AVG(salary) AS avg_salary
    FROM employees
    GROUP BY department_id
) t
WHERE avg_salary > 6000;
  • 인라인뷰에서 부서별 평균 연봉을 먼저 계산.
  • 메인 쿼리에서 평균 연봉이 6000 이상인 부서만 필터링.

3. TOP-N 패턴 (순위/페이징)

SELECT *
FROM (
    SELECT employee_id, employee_name, salary,
           RANK() OVER (ORDER BY salary DESC) AS rnk
    FROM employees
) t
WHERE rnk <= 5;
  • 인라인뷰에서 급여순 랭크를 매김.
  • 메인 쿼리에서 상위 5명만 가져옴.

인라인뷰는 복잡한 쿼리를 단계별로 쪼개서 관리하거나, 집계 → 필터링, 순위 매기기 → 조건절 적용 같은 패턴에서 자주 사용됩니다.
 
오늘은 여기까지~
 
 

728x90