Free Lines Arrow
본문 바로가기
Algorithm/프로그래머스 SQL

[프로그래머스] 입양 시각 구하기(2)

by skahn1215 2021. 9. 28.
728x90
반응형

문제

 

 

분석

시간순으로 해당되는 시간을 count 하여 출력하는 문제라고 생각을 했다.

1. 시간순으로 출력하는 코드를 구현을 해야 된다.

   - 검색을 해보니 CONNECT BY 를 쓰면 된다.

2. group by 로 DB에 시간으로 그룹을 만든다.

3. 시간과 DB 에 있는 시간을 join 하여 count 를 한다.

 

 

구현

1. 0~24 까지 출력해본다.

 SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL <=24

 

2. join 하여 출력을 해본다. 그렇게 되면 시간대에 맞춰 데이터들이 중복되어 나온다.

SELECT 
    A.HOUR, O.DATETIME
FROM  
    (SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL <=24) A 
LEFT JOIN
    ANIMAL_OUTS O ON A.HOUR = to_char(O.DATETIME, 'HH24')

 

3. 중복된 데이터를 GROUP BY 해준후 COUNT 로 중복된 데이터를 계산한다.

SELECT 
    A.HOUR, COUNT(O.DATETIME)
FROM  
    (SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY LEVEL <=24) A 
LEFT JOIN
    ANIMAL_OUTS O ON A.HOUR = to_char(O.DATETIME, 'HH24')
GROUP BY A.HOUR
ORDER BY A.HOUR

 

 

 

 

문제:

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

 

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

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

programmers.co.kr

 

728x90
반응형

댓글