Programmers MYSQL (입양 시각 구하기(2))

Pocketopi·2025년 4월 14일
post-thumbnail

🔔 문제

Programmers - 동물 시간대별 퇴장 횟수(https://school.programmers.co.kr/learn/courses/30/lessons/59413)
➔ 각 시간대별 입양 동물 수 구하기

🎯 풀이방법

핵심

WITH RECURSIVE를 사용하여 0시부터 23시까지 시간대를 TIME 테이블로 생성한다.
그 후, LEFT JOIN을 사용하여 시간대별 퇴장한 동물의 수를 구한다.

💻 전체 코드

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

💡 핵심문법 및 배운점

  • WITH RECURSIVE: SQL의 재귀 쿼리 문법 [문법 자세히 보기]
  • HOUR
  • LEFT JOIN : HOUR이 0인 행도 모두 가져오기 위함
profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

2개의 댓글

comment-user-thumbnail
2025년 4월 14일

리컬시브하네요

1개의 답글