Recent Posts
Recent Comments
ღ yuni_world ღ
[MySQL] [프로그래머스 level 4] 입양 시각 구하기(2) 본문
📌 문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/59413#
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 문제풀이
## 시간 여백 채우기 위하여 재귀함수 활용
with recursive base as (
select 0 as hour
union all
select hour+1
from base
where hour <=22)
select hour, count(animal_id) as count
from base a left join animal_outs b on a.hour=hour(b.datetime)
group by 1
order by 1
📖 NOTE
- ANIMAL_OUTS 테이블을 이용해 시간대별 입양 건수를 GROUP BY로 집계하게 되면 입양 기록이 없는 시간대의 경우 아래오 같이 해당 시간대의 행 자체가 생성되지 않음

- 따라서 재귀함수 with recursive 문을 활용하여 0~23 까지의 임의의 시간컬럼을 생성한 뒤, 시간대별 입양건수를 구하여 조인
📚 재귀함수 with recursive문은 아래 내용 참고
[MySQL] 재귀 쿼리(WITH RECURSIVE 문)
📌 재귀 쿼리란?SQL에서는 CTE(Common Table Expression) 중 WITH RECURSIVE 구문을 사용하면 자기 자신을 반복적으로 호출하는 형태의 재귀 쿼리를 만들 수 있음조직도나 카테고리 트리, 댓글처럼 부모-자식
yooninging.tistory.com
'MySQL > 프로그래머스' 카테고리의 다른 글
| [MySQL] [프로그래머스 level 4] 주문량이 많은 아이스크림들 조회하기 (0) | 2025.11.11 |
|---|---|
| [MySQL] [프로그래머스 level 4] 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2025.10.30 |
| [MySQL] [프로그래머스 level 4] 자동차 대여 기록 별 대여 금액 구하기 (0) | 2025.10.22 |
| [MySQL] [프로그래머스 level 3] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2025.06.18 |
| [MySQL] [프로그래머스 level 3] 업그레이드 할 수 없는 아이템 구하기 (0) | 2025.06.17 |