[SQL 문제 풀기] 입양 시각 구하기(2)(59413)

lhs's avatar
Feb 24, 2025
[SQL 문제 풀기] 입양 시각 구하기(2)(59413)
 

1. 문제 풀이 아이디어

  • WITH RECURSIVE를 사용하여 0부터 23까지의 시간을 생성한 후, LEFT JOIN을 이용해 각 시간별 입양된 동물의 수를 구해 문제를 해결한다.

2. 나의 정답 코드

WITH RECURSIVE time AS ( SELECT 0 hour UNION ALL SELECT hour + 1 FROM time WHERE hour < 23 ) SELECT t.hour, COUNT(a.datetime) FROM time t LEFT JOIN animal_outs a ON HOUR(a.datetime) = t.hour GROUP BY t.hour;

3. 정리

  • WITH RECURSIVE로 0부터 23까지의 시간을 생성한다.
  • LEFT JOIN을 사용하여 animal_outs 테이블의 datetime에서 시간만 추출한 값과 time 테이블을 조인한다.
  • GROUP BY로 각 시간별 입양된 동물의 개수를 구한다.
  • COUNT(a.datetime)을 사용하여 해당 시간에 입양된 동물의 수를 계산한다.
Share article

LHS's Study Space