반응형
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
GROUP BY ~ HAVING, DATETIME의 특정 문자를 추출하는 문제였습니다.
풀이방법
1. 열 선택 : HOUR함수를 이용합니다. HOUR(DATETIME)을 하게 되면 시간만 추출할 수 있습니다. 해당 열을 HOUR로 바꿔줍니다. AS절을 사용해도 무방하나 공백으로 구분해 표현될 열의 대체 텍스트를 지정할 수 있습니다. 다음으로 COUNT(HOUR(DATETIME))을 선택해줍니다. HOUR(DATETIME)을 앞서 HOUR로 지정하긴 했으나 SELECT ~ FROM 절 안에서 대체 텍스트를 바로 다음 열에서 사용할 수 없습니다. 따라서 부득이하게 해당 코드를 작성하게 되었습니다.
2. 그룹화 : 이제 대체 텍스트로 지정된 HOUR를 사용할 수 있습니다. HOUR가 같은 것들끼리 묶을 때 HAVING으로 조건을 지정해줍니다. 9이상 ~ 20미만의 시간만 COUNT하도록 해줍니다. 조건이 2개이므로 AND로 표현합니다.
3. 시간 오름차순으로 정렬
Code
SELECT
HOUR(DATETIME) HOUR,
COUNT(HOUR(DATETIME)) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR >= 9 AND HOUR < 20
ORDER BY HOUR
'Algorithm > SQL' 카테고리의 다른 글
(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 없어진 기록 찾기 (2) | 2021.03.08 |
---|---|
(MYSQL) - 프로그래머스 (SQL 고득점 kit - GROUP BY) : 오랜 기간 보호한 동물(2) (0) | 2021.03.08 |
(MYSQL) - 프로그래머스 (SQL 고득점 kit - GROUP BY) : 동명 동물 수 찾기 (0) | 2021.03.08 |
(MYSQL) - 프로그래머스 (SQL 고득점 kit - GROUP BY) : 고양이와 개는 몇 마리가 있을까 (0) | 2021.03.08 |
(MYSQL) - 프로그래머스 (SQL 고득점 kit - String, Date) : 중성화 여부 파악하기 (0) | 2021.03.07 |