728x90
더보기
WITH(임시 테이블)
- 단일문 범위 내에 존재하는 명명된 임시 결과의 집합
- 나중에 해당 문 내에서 여러번 참조 가능
- 데이터 베이스에 저장되지 않음
동일한 SQL 반복 시 성능을 높일 때 사용
실제 temp 라는 임시 테이블에 저장이 됨
with
cte1 as (select a, b from table 1),
cte2 as (select c, d from table 2), ...
select a from cte1
WITH TEMP_TABLE as
(
SELECT NAME, count(NAME)
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
ORDER BY NAME
)
SELECT * FROM TEMP_TABLE
WHERE COUNT > 1
생성 이후에 쿼리문에서 계속 사용이 가능하다
with 임시 테이블이 생성된 후에는
이렇게 쿼리도 가능하다
select b, d from cte1 join cte2
where cte1.a = cte2.c;
-- 예시쿼리
with dept as
(select department_id, department_name, dept_name
from departments) -- 임시 테이블 생성
select a.employee_id as em_id,
a.first_name||' '||a.lastname as name
from employees as a, dept b
where a.department_id = b.department_id;
728x90
'Web > DB' 카테고리의 다른 글
[mysql] 멀티게시판 구현 설계 (0) | 2023.05.02 |
---|---|
[mysql] with 절(가상테이블) 02 (0) | 2023.05.01 |
[mariaDB Mac] 설치 팁 (0) | 2023.04.13 |
[mariaDB] Spring + mariaDB 연동 (0) | 2023.04.04 |
MySQL 데이터베이스 스키마/테이블/컬럼 네이밍 설계 규칙 (0) | 2023.03.19 |