본문 바로가기

Mysql/Mysql 코딩테스트

mysql GROUP BY 문제 프로그래머스 - 입양 시각 구하기(2)

반응형

 

 

다른 문제에 비해 생각할게 많은거같았다..

 

1. 시간별로 나타내기위한 인덱스 값 구하기

 

 

일단 첫번째로 0시부터 23시까지 시간대별로 나타내기위한 인덱스 값이 필요했다

 

set이라는 메소드를 활용해 변수를 선언하는것이 가능했다.

 

 

 

해당방식으로 실행하니 0따로 HOUR따로 나타는결과가 발생했다.

 

이번에는 HOUR에 따른 COUNT값을 가져오는 쿼리를 작성해보았다.

 

 

select  HOUR(DATETIME),count(DATETIME) 
from ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME)

 

이제 이 둘을 합쳐준다

 

 

-- 코드를 입력하세요
set @hour_count:=-1;

SELECT @hour_count:=@hour_count+1 as hour,
IFNULL(
(select count(DATETIME) 
from ANIMAL_OUTS
where @hour_count = HOUR(DATETIME)
GROUP BY HOUR(DATETIME)), 0) as count
FROM ANIMAL_OUTS
where @hour_count < 23

 

빈값들이 0이 표시될 수 있게 IFNULL 을 넣어서 비어있는 값을 치환할 수 있도록 하였다. 

 

반응형