문제
https://programmers.co.kr/learn/courses/30/lessons/59413?language=mysql
풀이
갑자기 안풀려서 답답했던 문제였는데, 알고보니 LEVEL 4 였다더라~
SET을 통해 변수를 설정해야 쉽게 풀 수 있는 문제였다.
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
맨 마지막의 WHERE 절을 반복문처럼 사용하기 때문에,
맨 첫 줄의 (@hour := @hour+1) 동작으로 0을 뽑아내기 위해선
@hour의 변수값을 초기에 -1 로 설정해야한다.
COUNT를 뽑아내는 서브쿼리에선
@hour 변수값과 HOUR(DATETIME)을 비교해서 개수를 세면 된다!
SET 을 통한 변수 선언을 기억하자.
댓글남기기