SQL_ORACLE

NVL/CONNECT BY프로그래머스 SQL 입양시각 구하기(2)

유호야 2021. 3. 12. 21:48
반응형

내가 찾은 가장 이해가 잘 가는 방식!

새롭게 알게 된 문법

NVL(NULL값에 0 넣어주는것)과 CONNECT BY(0부터 차례대로 문자 나열하기)

그리고 (+) LEFT JOIN을 이런식으로도 가능

ORDER BY 1은 첫번째 SELECT 변수로 나열하기

 

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

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

programmers.co.kr

SELECT B.HOUR, NVL(A.COUNT, 0) AS COUNT
FROM (
     SELECT DISTINCT TO_CHAR(DATETIME, 'HH24') AS HOUR, COUNT(DATETIME) AS COUNT
     FROM ANIMAL_OUTS
     GROUP BY TO_CHAR(DATETIME, 'HH24')
     ) A, 
     
(SELECT LEVEL-1 AS HOUR FROM DUAL
CONNECT BY LEVEL <=24) B



WHERE A.HOUR(+) = B.HOUR
ORDER BY 1 ASC;

 

반응형