💻 프로그래밍/프로그래머스

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

ssoniya 2025. 4. 5. 17:50

 

WITH RECURSIVE TIME AS (
    SELECT 0 AS HOUR
    UNION ALL 
    SELECT HOUR + 1 
    FROM TIME
    WHERE HOUR < 23
)
SELECT T.HOUR, COUNT(A.ANIMAL_ID) AS COUNT
FROM TIME T LEFT JOIN ANIMAL_OUTS A ON T.HOUR = HOUR(A.DATETIME)
GROUP BY T.HOUR
ORDER BY T.HOUR ASC;

 

*CTE

- 쿼리 안에서 쓰이는 임시 테이블 만드는 방법

WITH 테이블이름 AS (
   서브쿼리
)
SELECT ...
FROM 테이블이름

 

*재귀 CTE

- 자기 자신을 SELECT 안에서 재참조할 수 있게 해주는 재귀 테이블 선언

- WITH RECURSIVE  가 재귀 CTE 선언

WITH RECURSIVE 테이블이름 AS (
   서브쿼리
)
SELECT ...
FROM 테이블이름