OracleDB/OracleDB 코딩테스트 해결과정

프로그래머스 스쿨(Oracle - Lv.2) - 입양시각구하기(1) (시간형식까지 다맞추기)
깝몬 2023. 6. 9. 18:54

제시된문제

 

 

SELECT TO_CHAR(DATETIME, 'HH24') as "HOUR", COUNT(*) as "COUNT"
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME, 'HH24') BETWEEN 9 AND 20
GROUP BY TO_CHAR(DATETIME, 'HH24')
ORDER BY TO_CHAR(DATETIME, 'HH24') asc;

예시와 하나도 안다른데... 틀린그림 찾기를 해보자.

문제점

정말 이 상황을 긴밀히 들여다보면 hour의 첫 row가 나는 09 이고 제시한 예시는 9 이다.

 

이것은 HH24형식이 아닌 숫자의 형식으로 변형해줘야한다.

 

해결방식

숫자의 ROW명에 TO_NUMBER를 붙여 해결했다...

SELECT TO_NUMBER(TO_CHAR(DATETIME, 'HH24')) as "HOUR", COUNT(*) as "COUNT"
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME, 'HH24') BETWEEN 9 AND 20
GROUP BY TO_CHAR(DATETIME, 'HH24')
ORDER BY TO_CHAR(DATETIME, 'HH24') asc;

 

내가 뭘 잘못했는지조차 인식을 못했는데 생각치도 못한부분에서 많이 스트레스를 받게하는 문제인듯 하다. 다음엔 절대 걸리지 말아야겠다.