입양 시각 구하기(2)
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
-- 반복문을 통한 테이블 생성
WITH RECURSIVE Hours AS (
-- 베이스 케이스: 재귀의 시작점
SELECT 0 AS HOUR -- 시작값을 0으로 설정
UNION ALL
-- 재귀 케이스: 이전 결과를 기반으로 반복적으로 데이터 생성
SELECT HOUR + 1
FROM Hours
WHERE HOUR < 23
)
-- 시간대별 입양 건수 집계
SELECT H.HOUR,
COALESCE(COUNT(A.HOUR), 0) AS COUNT -- COUNT 결과가 NULL인 경우, 0으로 변환하여 표시
FROM Hours H
LEFT JOIN ( -- Hours 테이블과 ANIMAL_OUTS LEFT JOIN -> 없는 시간 생성
SELECT HOUR(DATETIME) AS HOUR
FROM ANIMAL_OUTS
) A
ON H.HOUR = A.HOUR
GROUP BY H.HOUR
ORDER BY H.HOUR;
'SQL' 카테고리의 다른 글
SQL 코드카타: 자동차 대여 기록 별 대여 금액 구하기 (0) | 2025.01.06 |
---|---|
SQL 코드카타 오답: JOIN과 LEFT JOIN의 중요성 | 여러가지 JOIN 조건 부여하기 | 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (2) | 2024.12.23 |
QCC 2회차: DISTINCT | <> | CASE WHEN | DATE() (0) | 2024.12.20 |
SQL 코드카타 오답: 동일한 조건의 대상자가 여러명인 경우 | UNION ALL | NULL값 처리 | 테이블마다 컬럼명의 의미가 다른 경우 (2) | 2024.12.18 |
SQL 코드카타 오답: WHERE에서 두 가지 조건 부여하기 | SUM (2) | 2024.12.17 |