하루에 하나씩 공부하기
입양 시각 구하기(2)-LV4 본문
- 문제
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
코딩테스트 연습 - 입양 시각 구하기(2) | 프로그래머스 스쿨
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 키포인트
SQL에서 재귀함수에 대해 아예 몰라서 해당 시간대가 없는 시간대를 출력값에 추가할 수 없었음
재귀함수 RECURSIVE 사용 방식에 대해 처음 알게 되었음
WITH RECURSIVE cte AS
(
SELECT 1
UNION ALL
SELECT n + 1 FROM cte WHERE n < 5 -- FROM절에 자신이 참조됨.
)
SELECT * FROM cte;
- 코드
WITH RECURSIVE A AS (
SELECT 0 AS HOUR
UNION ALL
SELECT HOUR+1 FROM A WHERE HOUR<23),
B AS (
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS CNT
FROM ANIMAL_OUTS
GROUP BY HOUR)
SELECT A.HOUR,
CASE WHEN B.CNT IS NULL THEN 0
ELSE CNT
END AS COUNT
FROM A LEFT JOIN B ON A.HOUR=B.HOUR
ORDER BY HOUR;
'SQL 코딩테스트 > LV4' 카테고리의 다른 글
특정 세대의 대장균 찾기-LV4 (0) | 2025.02.11 |
---|---|
보호소에서 중성화한 동물-LV4 (0) | 2025.02.11 |
우유와 요거트가 담긴 장바구니-LV4 (0) | 2025.02.10 |
식품분류별 가장 비싼 식품의 정보 조회하기-LV4 (0) | 2025.02.10 |
5월 식품들의 총매출 조회하기-LV4 (2) | 2025.02.07 |