코딩 테스트 연습/프로그래머스

[프로그래머스] 입양 시각 구하기(1) (Oracle, Lv2)

ThinkFree 2022. 3. 2. 06:19

 

테이블 구조

 

문제 설명

ANIMAL_OUTS 테이블의 입양시간과 입양 시간대별 건 수를 알아야 합니다.

- 입양시간은 09:00부터 19:59까지 입니다.

- 이때 결과는 시간대 순으로 조회합니다.

  • 입양시간과 건 수 조회 : 컬럼 HOUR, COUNT
  • 09:00부터 19:59까지 : 범위 BETWEEN
  • 결과는 시간대 순 : 정렬 ORDER BY

 

Solution

 

1) 서브쿼리 : 5~9 line 

- SELECT문을 이용하여 ANIMAL_OUTS DATETIME을 조회합니다. 이때 TO_CHAR()을 사용하여 날짜의 형태를

원하는 CHAR 타입으로 변환할 수 있습니다. 'HH24'를 기재하면 24시간제로 변환합니다.

- 별칭 지정 AS을 사용하여 복잡한 필드명을 HOUR로 지정해줍니다.

- 그 후 조건절 WHERE 범위 BETWEEN을 사용하여 시간을 9시부터 19시까지의 데이터만을 가져옵니다.

 

+ 서브쿼리를 실행하면 아래와 같이 시간 데이터만을 얻을 수 있습니다.

 

 

2) 전체쿼리

- 서브쿼리에서 나온 데이터들을 시간대별로 묶어주고 시간대별 갯수를 알아야 합니다.

- 갯수 조회 COUNT()를 사용한 후에 그룹화 GROUP BY절을 사용하여 HOUR을 그룹화해줍니다.

- 그 후 정렬 ORDER BY를 사용하면 시간순서대로 정렬할 수 있습니다.

 

 

출처

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

 

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

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

programmers.co.kr