반응형
문제
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
구조
ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.
예시
완성한 쿼리
select
hour,
count
from(
select
to_number(to_char(datetime, 'fmhh24')) HOUR,
count(*) COUNT
from animal_outs
group by to_number(to_char(datetime, 'fmhh24'))
order by to_number(to_char(datetime, 'fmhh24'))
)
where hour >= 9 and hour < 20
이번 문제는 조금 복잡하게 풀었습니다. to_char()만 하면 1~9시가 01~09로 출력이 돼서 to_number()를 써줬으며, 그대로 조건을 넣어주기에는 코드가 너무 지저분해져서 서브쿼리를 이용했습니다.
문제 출처 : https://school.programmers.co.kr/learn/courses/30/lessons/59412
반응형
'코딩테스트 > Oracle DB' 카테고리의 다른 글
[Oracle] 프로그래머스 : 중성화 여부 파악하기 (1) | 2024.01.19 |
---|---|
[Oracle] 프로그래머스 : NULL 처리하기 (0) | 2024.01.19 |
[Oracle] 프로그래머스 : DATETIME에서 DATE로 형 변환 (0) | 2024.01.18 |
[Oracle] 프로그래머스 : 가격이 제일 비싼 식품의 정보 출력하기 (0) | 2024.01.18 |
[Oracle] 프로그래머스 : 3월에 태어난 여성 회원 목록 출력하기 (0) | 2024.01.16 |