SELECT hour(DATETIME) HOUR, count(DATETIME) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR;
위 코드는 잘못된 코드이다.
문제는 0~23시까지 모든 시가 출력되길 원하기 때문이다.
SET 명령어를 사용해야 한다.
- SET 명령어는 변수에 특정한 값을 넣어줄 때 사용한다.
- @은 변수명 앞에 써주어야 한다. (ex. @HOUR)
- :=는 대입 연산자로, SET명령어에서는 =, := 둘다 대입 연산자로 인식된다.
- SET을 제외한 다른 쿼리문(ex. SELECT)은 '='를 비교연산자로 인식한다.
SET @HOUR = -1;
SELECT (@HOUR := @HOUR + 1) HOUR,
(SELECT count(DATETIME) COUNT FROM ANIMAL_OUTS WHERE hour(DATETIME) = @HOUR) COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23;
[실행결과]
'Language > SQL' 카테고리의 다른 글
[프로그래머스] 이름이 있는 동물 아이디 (0) | 2022.07.04 |
---|---|
[프로그래머스] 이름이 없는 동물의 아이디 (0) | 2022.07.04 |
[프로그래머스] 입양 시각 구하기(1) (0) | 2022.07.04 |
[프로그래머스] 동명 동물 수 찾기 (0) | 2022.07.04 |
[프로그래머스] 고양이와 개는 몇 마리 있을까 (0) | 2022.07.04 |