프로그래머스
0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
중요한 것은 각 시간대별로 해당하는 값이 없어도 0으로 출력되어야하는 점이다.
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
이를 위해 변수를 만들고 값을 증가시키며 그에 따른 시간대별 입양 건수를 서브쿼리를 이용하여 만든다.
이 문제는 어렵기도 했고 SQL문법도 잘 몰라서 답을 보며 익혔다.
SQL에서
값을 대입할 때에는 :=
를 사용한다.
=
는 값을 비교할 때 사용한다.
변수를 선언할 때에는 SET
을 쓴다.
세미콜론;
을 붙여주기!