동캄의 코딩도장

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

코테/프로그래머스 sql

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

동 캄 2022. 1. 5. 21:30

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

 

코딩테스트 연습 - 입양 시각 구하기(2)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

-- 코드를 입력하세요
WITH RECURSIVE MT_TEMP_TABLE AS (
    SELECT 0 AS h
    UNION ALL
    SELECT h+1 FROM MT_TEMP_TABLE WHERE h < 23
)

# WITH과 RECURSIVE를 이용해 임시 테이블을 만든다

SELECT h, count(ANIMAL_ID)
FROM MT_TEMP_TABLE
    LEFT OUTER JOIN ANIMAL_OUTS
    ON HOUR(DATETIME) = MT_TEMP_TABLE.h
group by h
order by h

풀지못하고, 다른 분의 풀이를 보고 이해했다.

with recursive 라는 구문이 있는데, with recursive 구문을 이용하면 반복문을 이용하여 테이블을 생성할 수 있다.

 

위의 문제에서 with recursive 구문으로 테이블을 생성하고, ANIMAL_OUTS 테이블과 left join을 한 뒤, 시간대 별로 입양된 동물들의 정보를 추출한다.