Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/프로그래머스

[SQL KIT] (2024) 입양 시각 구하기(1)(설명/코드/정답)

_hyeri 2024. 1. 26. 17:31

 

 

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/59412

 

정상 코드.

SELECT HOUR(DATETIME) AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN '9' AND '19'
GROUP BY HOUR
ORDER BY HOUR

 

내부 동작 순서 

 

1. FROM 절

FROM ANIMAL_OUTS: ANIMAL_OUTS 테이블에서 데이터를 추출합니다.

 

2. WHERE 절

'09:00:00'부터 '19:59:59'까지의 시간 범위에 해당하는 레코드를 선택

(문제의 조건인 09:00부터 19:59까지'와 '09:00:00부터 19:59:59까지'는 시간상으로 동일한 범위를 나타냅니다.

시간 형식에 따라 다르게 표현된 것)

 

3. GROUP BY 절 

GROUP BY HOUR: 시간에 따라 그룹을 형성합니다. HOUR(DATETIME)를 기준으로 그룹화하여 시간대별로 데이터를 묶습니다.

 

4. SELECT 절

각 그룹에서 시간을 추출하고, 해당 그룹의 행 수를 세어서 HOUR과 COUNT라는 별칭을 가진 열로 선택합니다.

 

5. ORDER BY 절

결과를 HOUR 열을 기준으로 오름차순 정렬합니다.

 


 

초기 코드

SELECT HOUR(DATETIME) AS HOUR,COUNT(*) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME) BETWEEN '9' AND '19'
GROUP BY HOUR
ORDER BY HOUR

 

HOUR COUNT
9 1
10 2
11 13
12 10
13 14
14 9
15 7
16 10
17 12
18 16
19 2

 

=>정상 출력