문제링크 : https://programmers.co.kr/learn/courses/30/lessons/59413
코딩테스트 연습 - 입양 시각 구하기(2)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
문제 설명
0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성.
이때, 결과는 시간대 순으로 정렬해야 합니다.
알고리즘
1. 입양시간은 07시 부터 19시까지만 존재하므로 존재하지않는 시간대는 따로 만들어 줘야한다.
2. SET를 통해 hour라는 변수를 선언해주고, @hour := @hour + 1 AS 'HOUR'을 통해 hour 변수가 1씩 증가하도록
만들어 준다.
3. subquery에서는 현재 hour변수값과 ANIMAL_OUTS의 HOUR(DATETIME)가 같은 DATETIME을 count하도록 해준다.
4. 이러한 쿼리문의 결과를 @hour < 23까지만 실행해주면 0~23까지의 hour을 받아낼 수 있다.
코드
1
2
3
4
5
6
7
8
|
set @hour := -1;
select
(@hour := @hour +1) as 'HOUR',
(select count(*) from animal_outs where hour(datetime) = @hour) as 'count'
from
animal_outs
where
@hour<23
|
cs |
참고 블로그 : https://www.crocus.co.kr/1591
'MySQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - NULL 처리하기 (0) | 2020.06.16 |
---|---|
[MySQL] 프로그래머스 - 이름이 있는 동물의 아이디 (0) | 2020.06.16 |
[MySQL] 프로그래머스 - 입양 시각 구하기(1) (0) | 2020.06.15 |
[MySQL] 프로그래머스 - 동명 동물 수 찾기 (0) | 2020.06.15 |
[MySQL] 프로그래머스 - 고양이와 개는 몇 마리 있을까 (0) | 2020.06.15 |