Stay Hungry Stay Foolish

프로그래머스 코딩테스트/SQL 고득점 kit

프로그래머스 입양 시각 구하기(1) (GROUP BY/Level 2)

dev스카이 2022. 8. 5. 15:10
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 설명

보호소에서 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이 발생하는 지 조회한다. 이때 결과는 시간대 순으로 정렬한다.

 

문제 풀이

  1. 시간과 건수를 조회해야 하므로 SELECT절에 DATETIME과 집계함수를 이용한다. 날짜 데이터에서 시만 추출할 때 HOUR를 쓰고, 개수를 세는 COUNT 집계함수를 사용한다. 
  2. FROM절에는 보호소에서 입양을 보낸 동물들의 정보가 담긴 ANIMAL_OUTS를 쓴다.
  3. 09:00부터 19:59까지라는 조회하라는 조건이 있으므로, WHERE절을 이용한다.
  4. 시간대별로 묶어야 하므로 그룹화를 할 수 있는 GROUP BY를 사용한다.
  5. 마지막으로, 시간대 순으로 정렬하라는 조건이 있으므로 ORDER BY를 이용한다. 이때, 칼럼명 뒤에 써야 하는 ASC 오름차순 키워드는 디폴트 값이므로 생략한다.

Solution

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