제시된문제
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;
내가 뭘 잘못했는지조차 인식을 못했는데 생각치도 못한부분에서 많이 스트레스를 받게하는 문제인듯 하다. 다음엔 절대 걸리지 말아야겠다.
'OracleDB > OracleDB 코딩테스트 해결과정' 카테고리의 다른 글
프로그래머스 스쿨(Oracle - Lv.2) - 재구매가 일어난 상품과 회원 리스트 구하기(등장횟수에 따른 조건 설정) (0) | 2023.06.14 |
---|---|
프로그래머스 스쿨(Oracle - Lv.2) - 중복 제거하기(DISTINCT) (0) | 2023.06.13 |
프로그래머스 스쿨(Oracle - Lv.2) - 자동차 평균 대여기간 구하기 (0) | 2023.06.09 |
프로그래머스 스쿨(Lv.1) - 자동차 대여기록에서 장기/단기 대여 구분하기(조건에 따라 행 추가/날짜간의 뺄셈) (1) | 2023.06.05 |
프로그래머스 스쿨(Lv.1) - 12세이하인 여자 환자 목록 출력하기(Null값 처리하기) (1) | 2023.06.05 |