1. CTE (Common Table Expression)
CTE는 쿼리 안에서 사용하는 임시 결과 집합으로, WITH 절을 사용한다. CTE는 쿼리 실행 동안만 존재하며 서브쿼리와 비교해서 가독성이 좋고, 복잡한 쿼리를 단계적으로 분리할 수 있다는 장점이 있다.
# 기본문법
WIHT 테이블명 AS (
SELECT ...
)
SELECT *
FROM 테이블명
;
2. 재귀 (Recursive)
재귀는 자기 자신을 다시 참조하며 반복적으로 실행되는 구조를 의미한다.
SQL에서 재귀는 이전 결과를 다시 사용해 다음 결과를 만들어내는 방식으로 동작한다. 이 개념을 CTE에 적용한 것이 재귀 CTE이다.
Python에서 for문과 비슷한 역할을 한다고 볼 수 있다.
3. 코드카타 : 프로그래머스 입양 시각 구하기(2)
WITH RECURSIVE hours AS (
SELECT 0 AS hour
UNION ALL
SELECT hour + 1 FROM hours WHERE hour < 23
)
select h.hour, count(o.animal_id) as 'count'
from hours as h
left join animal_outs as o
on h.hour = hour(o.datetime)
group by h.hour
order by h.hour
;
'Data_10기' 카테고리의 다른 글
| [심화 프로젝트] 4일차 - EDA (0) | 2025.12.23 |
|---|---|
| 브라질 Olist 이커머스 데이터 분석을 위한 배경지식 정리 (0) | 2025.12.18 |
| 머신러닝 비지도학습 - 클러스터링 (0) | 2025.12.16 |
| 머신러닝 지도학습 방법 - kNN, RF, XGBoost (0) | 2025.12.15 |
| 회귀분석 : 인과추론 VS 머신러닝 (0) | 2025.12.12 |