728x90
입양 시각 구하기(1)
문제
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다. 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. |
예시
문제에서 원하는점은
- GROUP BY를 사용해 시간별로 묶어주기
- 시간대별로 COUNT를 사용
- 시간대순으로 정렬
이렇게 3가지 입니다.
바로 작성해 보겠습니다.
우선 시간먼저 정렬 시켜보도록 하겠습니다.
SELECT
HOUR(DATETIME) AS HOUR
FROM
ANIMAL_OUTS
GROUP BY
HOUR(DATETIME)
HAVING
HOUR BETWEEN 9 AND 19
ORDER BY
HOUR;
시간을 알려주는 함수인 HOUR을 사용하여 DATETIME에서 시간을 가져옵니다.
GROUP BY를 사용해 HOUR로 묶어준 데이터들을
HAVING으로 조건을 달아 BETWEEN으로 9에서 19시 까지의 데이터를 가져옵니다.
그리고 ORDER BY를 사용해 HOUR로 정렬을 해줍니다.
여기에 카운트만 추가해주면 끝입니다.
SELECT
HOUR(DATETIME) AS HOUR, COUNT(DATETIME) AS COUNT
FROM
ANIMAL_OUTS
GROUP BY
HOUR(DATETIME)
HAVING
HOUR BETWEEN 9 AND 19
ORDER BY
HOUR;
완성입니다.
출처:[프로그래머스 코딩테스트 연습] - https://programmers.co.kr/learn/courses/30/lessons/59041
728x90
'Database' 카테고리의 다른 글
[프로그래머스 SQL - IS NULL] 이름이 없는 동물의 아이디 (0) | 2021.07.12 |
---|---|
[프로그래머스 SQL - GROUP BY] 입양 시각 구하기(2) (0) | 2021.07.07 |
[프로그래머스 SQL - GROUP BY] 동명 동물 수 찾기 (0) | 2021.07.06 |
[프로그래머스 SQL - GROUP BY] 고양이와 개는 몇 마리 있을까 (0) | 2021.07.01 |
[프로그래머스 SQL - SUM, MAX, MIN] 중복 제거하기 (0) | 2021.06.28 |