[SQL] 입양 시각 구하기 (2)

2025. 5. 9. 19:34·알고리즘/SQL
728x90
반응형

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

 

프로그래머스

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

programmers.co.kr

 

해당 문제는 Recursive를 활용해서 쿼리를 푸는 문제이다.

 

문제에서 주의할 점

  • CTE를 이용해서 재귀 테이블을 만들 수 있는가
  • COUNT(*) VS COUNT(B.ANIMAL_ID)

 

🔴 COUNT(*)의 경우

  • HH의 1시간마다 반드시 1개의 행은 생성됨
  • LEFT JOIN 결과는 B.ANIMAL_ID가 NULL이어도 행이 존재하므로
  • COUNT(*)는 1로 카운트해버림 → ❌ 틀린 결과

 

✅ COUNT(B.ANIMAL_ID의 경우

  • B.ANIMAL_ID가 NULL이면 카운트되지 않음
  • → 입양 기록이 없는 시간대는 정확히 0으로 집계됨

 

-- 코드를 입력하세요
-- ANIMAL_OUTS

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


SELECT A.HOUR AS HOUR, COUNT(B.ANIMAL_ID) AS COUNT
FROM HH A
LEFT JOIN ANIMAL_OUTS B ON A.HOUR = HOUR(B.DATETIME)
GROUP BY A.HOUR
ORDER BY A.HOUR;

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'알고리즘 > SQL' 카테고리의 다른 글

[SQL] 조건에 맞는 사원 정보 조회하기  (0) 2025.05.16
[SQL] 재귀 CTE(Command Table Expression)를 이용한 계층적 구조 탐색  (0) 2025.05.09
[SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기  (0) 2025.05.09
[SQL] 저자 별 카테고리 별 매출액 집계하기  (0) 2025.05.08
'알고리즘/SQL' 카테고리의 다른 글
  • [SQL] 조건에 맞는 사원 정보 조회하기
  • [SQL] 재귀 CTE(Command Table Expression)를 이용한 계층적 구조 탐색
  • [SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기
  • [SQL] 저자 별 카테고리 별 매출액 집계하기
moongi
moongi
프로그래밍 관련 공부를 정리하는 블로그
  • moongi
    By_Me
    moongi
  • 전체
    오늘
    어제
    • 공부 (56) N
      • 알고리즘 (24) N
        • 기업별 유사 문제 (2)
        • Sudo Code (4)
        • 예외처리 (1)
        • SQL (5)
      • spring boot (6)
        • jpa (0)
        • querydsl (0)
        • MVC pattern (0)
        • setting (2)
      • 취준 (6)
      • CS (8)
        • 디자인패턴 (1)
        • 데이터베이스 (4)
        • 네트워크 (3)
        • 운영체제 (0)
  • 인기 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
moongi
[SQL] 입양 시각 구하기 (2)
상단으로

티스토리툴바