sql

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

jyuuni 2023. 6. 19. 12:48
반응형

입양 시각 구하기(2)

  • 동물 보호소에서 입양 보낸 동물의 정보를 담은 ANIMAL_OUTS 테이블
ANIMAL_ID ANIMAL_TYPE DATETIME NAME SEX_UPON_INTAKE
동물 ID 동물 종 입양일 이름 성별 및 중성화 여부
* ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키

문제

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

 

문제 풀이

WITH RECURSIVE CTE AS (
    SELECT 0 AS HOUR
    UNION ALL
    SELECT HOUR + 1 FROM CTE
    WHERE HOUR < 23
)

SELECT HOUR, COUNT(A.DATETIME) AS COUNT
FROM CTE
LEFT OUTER JOIN ANIMAL_OUTS AS A
ON CTE.HOUR = HOUR(A.DATETIME)
GROUP BY HOUR;

*0부터 23까지의 임의의 행을 만들기 위해 WITH RECURSIVE 함수 활용

문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59413

반응형