728x90
https://school.programmers.co.kr/learn/courses/30/lessons/59413
- 문제
- 풀이
각 시간별 개수 세기
문제 : 존재하지 않는 시간이 나타나지 않는다.
SELECT HOUR(DATETIME), COUNT(*)
FROM ANIMAL_OUTS
GROUP BY HOUR(DATETIME)
ORDER BY HOUR(DATETIME);
0~6, 20~23 존재하지 않는 시간의 COUNT는 0으로 나와야하니 시간 컬럼을 만들어야겠다
-> 가상 테이블 만들기
https://chaemi720.tistory.com/331
- 코드
-- 시간 0~23 테이블 만들기
WITH RECURSIVE TIME_HOUR AS (
SELECT 0 AS H
UNION
SELECT H+1 FROM TIME_HOUR WHERE H < 23
)
SELECT T.H, COUNT(ANIMAL_ID)
FROM TIME_HOUR AS T
LEFT JOIN ANIMAL_OUTS AS O
ON T.H = HOUR(O.DATETIME)
GROUP BY T.H;
728x90
반응형
'TIL - 프로그래밍 > SQL' 카테고리의 다른 글
[해커랭크] Ollivander's Inventory - MySQL (0) | 2023.07.14 |
---|---|
[해커랭크] Occupations - MySQL (0) | 2023.07.11 |
[리트코드] 185. Department Top Three Salaries - MySQL (0) | 2023.07.09 |
[SQL] 누적합 구하는 3가지 방법 (0) | 2023.07.09 |
[SQL] 윈도우 함수 (Window Functions) (0) | 2023.07.09 |
댓글