개발로그필름
[SQL] 입양 시각 구하기(2) 본문
728x90
반응형
SMALL
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
정답 쿼리
WITH RECURSIVE HOURS AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1
FROM HOURS
WHERE HOUR < 23
),
HOURS_CNT AS (
SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
ORDER BY HOUR
)
SELECT H.HOUR, IF(C.COUNT IS NULL, 0, C.COUNT) COUNT
FROM HOURS H
LEFT JOIN HOURS_CNT C
ON H.HOUR = C.HOUR
노트
WITH RECURSIVE HOURS AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR + 1
FROM HOURS
WHERE HOUR < 23
)
- 처음 배우게 된 재귀 쿼리 부분이다
- SELECT 0 AS HOUR
- HOUR = 0 인 한 줄을 생성한다 (재귀 시작)
- SELECT HOUR + 1
FROM HOURS
WHERE HOUR < 23
- 위에서 생성된 HOUR 값을 하나씩 증가시키며 재귀적으로 자신을 호출한다
반응형
LIST
'coding test > 프로그래머스' 카테고리의 다른 글
[SQL] 자동차 평균 대여 기간 구하기 (2) | 2025.06.10 |
---|---|
[SQL] 가격대 별 상품 개수 구하기 (0) | 2025.06.09 |
[SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (3) | 2025.06.09 |
[SQL] ROOT 아이템 구하기 (0) | 2025.06.09 |
[SQL] 조건에 맞는 사용자 정보 조회하기 (1) | 2025.06.08 |
Comments