[프로그래머스 SQL] Lv.4 - 입양 시각 구하기(2)

2025. 4. 3. 09:03·SQL/GROUP BY

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문제 풀이

재귀 쿼리를 연습해 볼 수 있는 문제인 것 같다.

  1. 재귀 쿼리로 0시에서 23시까지 생성하는 테이블을 만든다.
  2. 재귀 쿼리로 만든 가상의 테이블과 ANIMAL_OUTS 테이블을 조인한다. 이때 입양이 발생하지 않는 경우에도 0건으로 조회해야 하기 때문에 LEFT JOIN으로 조인해 준다.
  3. 시간대별로 그룹핑한다.
  4. 시간대와 COUNT 키워드로 시간대별 입양 건수를 조회한다. 이때 LEFT JOIN이기 때문에 IFNULL 키워드를 같이 사용하여 입양 건수가 0인 조회 결과를 처리한다.
  5. 시간대를 기준으로 오름차순 정렬한다.
WITH RECURSIVE HOURS AS (
    
    SELECT 0 AS HOUR
    
    UNION ALL
    
    SELECT HOUR + 1
    FROM HOURS
    WHERE HOUR < 23
)

SELECT 
  H.HOUR,
  IFNULL(COUNT(A.ANIMAL_ID), 0) AS COUNT
FROM 
    HOURS AS H
        LEFT JOIN ANIMAL_OUTS AS A ON H.HOUR = HOUR(A.DATETIME)
GROUP BY
    1
ORDER BY 
    1

'SQL > GROUP BY' 카테고리의 다른 글

[프로그래머스 SQL] Lv.4 - 연간 평가점수에 해당하는 평가 등급 및 성과금조회하기  (0) 2025.04.14
[프로그래머스 SQL] Lv.4 - 언어별 개발자 분류하기  (0) 2025.04.10
[프로그래머스 SQL] Lv.4 - 년,월,성별 별 상품 구매 회원 수 구하기  (1) 2025.04.01
[프로그래머스 SQL] Lv.4 - 식품분류별 가장 비싼 식품의 정보 조회하기  (0) 2025.03.31
[프로그래머스 SQL] Lv.4 - 저자 별 카테고리 별 매출액 집계하기  (0) 2025.03.29
'SQL/GROUP BY' 카테고리의 다른 글
  • [프로그래머스 SQL] Lv.4 - 연간 평가점수에 해당하는 평가 등급 및 성과금조회하기
  • [프로그래머스 SQL] Lv.4 - 언어별 개발자 분류하기
  • [프로그래머스 SQL] Lv.4 - 년,월,성별 별 상품 구매 회원 수 구하기
  • [프로그래머스 SQL] Lv.4 - 식품분류별 가장 비싼 식품의 정보 조회하기
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    raid
    데브코스
    백엔드 면접
    JPA
    오블완
    스프링
    자바
    토스 페이먼츠
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
[프로그래머스 SQL] Lv.4 - 입양 시각 구하기(2)
상단으로

티스토리툴바