CODING TEST/MySQL
Lv2 - 입양 시각 구하기(1)
iamyuunzo
2025. 7. 21. 15:05
📌 문제 정보
- 문제 이름 : 프로그래머스 - (GROUP BY) 입양 시각 구하기(1)
- 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59412
📌 문제 요약
- NIMAL_OUTS 테이블 : ANIMAL_ID(동물의 아이디), ANIMAL_TYPE(생물 종), DATETIME(입양일), NAME(이름), SEX_UPON_OUTCOME(성별 및 중성화 여부)
- 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
출력)
| HOUR | COUNT |
| 9 | 1 |
| 10 | 2 |
| 11 | 13 |
| 12 | 10 |
| 13 | 14 |
| 14 | 9 |
| 15 | 7 |
| 16 | 10 |
| 17 | 12 |
| 18 | 16 |
| 19 | 2 |
📌 내 풀이 및 코드
SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN 9 AND 19
GROUP BY HOUR
ORDER BY HOUR;
- 시간을 따로 지정해서 추출할 수 있는 함수가 있다는 것을 몰랐음.
📌 새로 배운 문법
<-- 이번 문제에서 새로 배운 Java 문법 정리 -->
** HOUR() **
- MySQL에서 DATETIME or TIME 값에서 시간(hour) 부분만 뽑아주는 함수
- 24시간 기준의 시 정수값이 리턴됨
- HOUR (날짜/시간 컬럼 or 값)