코딩하는 해달이

[level 1 SQL] 입양 시각 구하기(2) 본문

개인 공부/프로그래머스

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

코딩하는 해달 2024. 8. 28. 20:00

문제 설명

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

문제 이해

먼저 시간과 입양 건수를 속성으로 가진 가상 테이블을 생성해야하고, COUNT함수를 이용해서 입양 건수를 세야겠다.그 후에 가상 테이블과 ANIMAL_OUTS 테이블의 DATETIME 속성을 LEFT JOIN해서 GROUP BY로 묶어주면 될거같다.

 

풀이코드

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

링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형
Comments