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

입양 시각 구하기(1) MySQL(프로그래머스)

멍토 2020. 7. 18.

출처 : 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

문제

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. 

ANIMAL_OUTS 테이블 구조는 다음과 같으며, 

ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME

각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.




보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다.

09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요.

이때 결과는 시간대 순으로 정렬해야 합니다.

 

SELECT HOUR(DATETIME) AS 'HOUR', COUNT(HOUR(DATETIME)) AS 'COUNT' 
FROM ANIMAL_OUTS 
WHERE HOUR(DATETIME>= 9 AND HOUR(DATETIME<= 19 
GROUP BY HOUR(DATETIME
ORDER BY HOUR(DATETIME)

 

문제가 뒤로 갈수록 쿼리가 조금씩 복잡해지고 있습니다.

시간대 별로 구분을 해야하기 때문에 HOUR를 이용해야합니다.

HOUR에 DATETIME을 넣어주면 시간만 뽑아줍니다.



그렇다면 저희는 9시부터 19시까지만 나오게 걸러낸 다음에

GROUP으로 묶어주고나서 시간으로 정려려해주면 끝입니다.


이것을 SQL로 변환하면 위와같은 쿼리가 나오게 됩니다.

 

댓글

💲 광고입니다.