
풀이
틀린풀이
➡️ 이렇게 풀면 count가 0값인 데이터가 안나옴
맞은풀이


➡️ SET함수를 사용해서 풀어야 한다.
- 'SET @hour := -1' : @hour를 선언하고 -1로 초기화한다. 이 변수는 시간대별로 동물이 입양된 횟수를 계산할 때 사용된다.
- 'SELECT (@hour := @hour+1) AS HOUR, ...' : @hour를 1씩 증가시키면서 그 값을 'HOUR' 별칭으로 선택, 시간대별로 증가하는 숫자가 HOUR열에 나타난다. (HOUR변수가 -1인데, +1로 대입해서 0이되고, 0은 1이된다. 따라서 마지막절 WHERE @hour<23은 22+1이 되므로 22가 될 때 멈추게 한다)
- '(SELECT COUNT(HOUR(DATETIME)) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @hour) AS COUNT' : 서브쿼리를 사용하여 현재 시간대(@hour)에 해당하는 'ANIMAL_OUTS'테이블의 행의 수를 계산한다.
- 'FROM ANIMAL_OUTS WHERE @hour < 23;' : ANIMAL_OUTS 테이블에서 @hour 값이 23보다 작은 경우에 대한 행만 선택한다.
참고 사이트 : https://velog.io/@ljs7463/MySQL-%EC%9E%85%EC%96%91-%EC%8B%9C%EA%B0%81-%EA%B5%AC%ED%95%98%EA%B8%B02