본문 바로가기
코딩테스트

프로그래머스 입양 시각 구하기(2) oracle

by 쎄정 2022. 5. 1.
728x90
반응형

목차

접속 링크

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

 

코딩테스트 연습 - 입양 시각 구하기(2)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

 

 

풀이 설명

0~23시로 시간을 설정하는 것이 큰 포인트이다.

계층적 퀴를 처리할 때 사용하는 LEVEL를 사용했다.

SELECT
    LEVEL - 1 AS HOUR -- LEVEL은 1부터 시작하므로 0부터 시작할시 -1을 넣어준다 1~24시까자이 데이터 출럭
FROM 
    DUAL
CONNECT BY 
    LEVEL <= 24

 

경이로운 타인의 풀이 코딩

SELECT B.HOUR, NVL(COUNT, 0) AS COUNT
FROM(
	SELECT TO_CHAR(DATETIME, 'HH24') AS HOUR, COUNT(*) AS COUNT
    FROM  ANIMAL_OUTS
    GROUP BY TO_CHAR(DATETIME, 'HH24')
    ORDER BY HOUR
    ) A, // A와 B절을 JOIN한다
    (
    SELECT (LEVEL-1) AS HOUR 
    FROM DUAL CONNECT BY LEVEL <= 24
    ) B
WHERE B.HOUR = A.HOUR(+) // B를 기준으로 RIGHTH OUTER JOIN
ORDER BY HOUR_LIST.HOUR

 

728x90
반응형

댓글