코딩 공부/프로그래머스

[프로그래머스][SQL] GROUP BY 3. 입양 시각 구하기 (1)

김 정 환 2021. 3. 4. 22:02
반응형

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

 

 

 

사고 과정

    - HOUR() : DATETIME 자료형에서 시간을 가져온다. 

    - DAY() : DATETIME 자료형에서 날짜를 가져온다.

    - 그외는 이곳에서 알아보자.

 

    1. Having에 조건을 걸어주는 방법이다. 이때 주의할 점은, select에서 column을 HOUR로 바꾸었다. 따라서 group by로 묶였을 때의 column은 HOUR가 되기 때문에 having에서 HOUR(DATETIME)이 아닌 HOUR로 조건을 만들어 주어야 한다.

 

    2. Where에 조건을 걸어주는 방법이다. HOUR(DATETIME)으로 조건을 만들어 주었다.

 

    - 쿼리의 작동 순서는 아래와 같다. 
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

 

 

 

구현(C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- 코드를 입력하세요
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
HAVING HOUR >= 9 AND HOUR < 20
ORDER BY HOUR(DATETIME)
 
 
-- 코드를 입력하세요
SELECT HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM ANIMAL_OUTS
WHERE HOUR(DATETIME>= 9 AND HOUR(DATETIME< 20
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)
 
cs

 

 

 

시행착오

반응형