티스토리 뷰
WITH RECURSIVE 문은 SQL 문법의 재귀 기법의 역할을 존재합니다. 다른 언어의 문법과 마찬가지로, 재귀를 시작할 지점과 마무리할 지점을 설정하는 것이 중요합니다.
WITH RECURSIVE example AS (
SELECT 1 AS n
UNION ALL
SELECT n+1 FROM example
WHERE n<4
)
SELECT * FROM example
- 가상의 테이블 (example) 지정
- non recursive 문장 생성 (첫 번째 반복에만 실행
- SELECT 1 AS n : 1부터 재귀문을 시작
- UNION 후 recursive 문장 실행
- WHERE 문을 활용한 재귀 종료 시점 지정
1. WITH RECURSIVE 예시
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
각 시간대 별 입양 건수 조회 -> 시간을 0 ~ 23으로 모두 출력
※ 주의) 단순히 GROUP BY로 할 경우, 결과가 테이블에 존재하는 시간만 조회
Solution)
- 0 ~ 23의 hour을 가진 가상 테이블 지정 (HOURS)
- ANIMAL_OUTS와 HOUR(DATETIME)을 기준으로 LEFT JOIN
- HOURS의 HOUR을 기준으로 그룹화
- NULL값인 경우 0으로 값을 설정 : IFNULL(COUNT(HOUR(DATETIME)), 0)
WITH RECURSIVE HOURS AS (
SELECT 0 AS hour
UNION ALL
SELECT hour+1 FROM HOURS
WHERE hour < 23
)
SELECT a.hour, IFNULL(COUNT(HOUR(b.DATETIME)),0) AS COUNT
FROM HOURS AS a LEFT JOIN ANIMAL_OUTS AS b
ON a.hour = HOUR(b.DATETIME)
GROUP BY a.hour ORDER BY a.hour;
'MySQL' 카테고리의 다른 글
[3] WITH 문 연습 (0) | 2025.04.08 |
---|---|
[2] 서브쿼리(Subquery) (0) | 2025.01.08 |
[1] SQL 코딩테스트 문법 정리 (0) | 2025.01.05 |
TAG
- #물고기 종류별 대어 찾기 #즐겨찾기가 가장 많은 식당 정보 출력하기 #mysql #programmers
- # 프로그래머스 # 카펫 # 완전탐색
- python #프로그래머스 #겹치는선분의길이
- 자연어 처리 #정제 #정규표현식 #어간 추출 #표제어 추출
- nlp #토큰화 #nltk #konply
- #tf idf
- randomforest #bagging #머신러닝 #하이퍼파라미터 튜닝
- 머신러닝 #lightgbm #goss #ebf
- #docker #docker compose
- #with recursive #입양시각 구하기(2) #mysql
- 로지스틱 회귀 #오즈비 #최대우도추정법 #머신러닝
- #docker #container #docker command
- #자연어 처리 #정수 인코딩 #빈도 수 기반
- #프로그래머스 #안전지대 #시뮬레이션
- #python #프로그래머스 #외계어사전 #itertools #순열과조합
- #django #mvt 패턴
- # 할인행사 #counter #딕셔너리 #프로그래머스
- #attention #deeplearning
- #opencv #이미지 연산 #합성
- pca #주성분분석 #특이값분해 #고유값분해 #공분산행렬 #차원의 저주
- 잘라서 배열로 저장하기 #2차원으로 만들기
- #polars #대용량 데이터셋 처리
- #seq2seq #encoder #decoder #teacher forcing
- #docker #image #build #dockerfile
- 프로젝트 #머신러닝 #regression #eda #preprocessing #modeling
- #opencv #이미지 읽기 #이미지 제작 #관심영역 지정 #스레시홀딩
- 머신러닝 #project #classification #dacon
- # 프로그래머스 #연속된 부분수열의 합 #이중 포인터 #누적합
- #웹 프로그래밍 #서버 #클라이언트 #http #was
- 머신러닝 #xgboost #
글 보관함
최근에 올라온 글