[프로그래머스]입양 시각 구하기(2)

김준석·2024년 2월 1일

코딩테스트 - SQL

목록 보기
40/96

문제

https://school.programmers.co.kr/learn/courses/30/lessons/59413

여기서 포인트는 없는 시간대 또한 만들어야 된다.

풀이

WITH RECURSIVE TIME AS(
    SELECT 0 AS hour
    UNION ALL
    SELECT hour+1
    FROM TIME
    LIMIT 24
)

SELECT 
    t.hour,
    COUNT(h.ANIMAL_ID) AS COUNT
FROM
    (SELECT *, HOUR(DATETIME) as hour
     FROM ANIMAL_OUTS
    ) h
    RIGHT JOIN TIME t
    ON h.hour=t.hour
GROUP BY
    t.hour
ORDER BY
    t.hour

설명!
RECURSIVE : 파이썬의 for문과 비슷한 느낌!
WITH 절에서 사용하며 UNION ALL 사이의 값을 계속 반복한다.

후기.

오늘 새로운 문법을 알았다...!!!

0개의 댓글