단순하게 데이터 범위 내에서 시간대별 통계 내기
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR;

모든 시간대별 통계내기
- 재귀적 쿼리(with recursive)와 left outer join을 사용한다.
WITH RECURSIVE temp as (
(SELECT 0 HOUR)
union
(SELECT HOUR+1 FROM temp where HOUR < 23)
)
SELECT temp.HOUR, IFNULL(A.COUNT, 0) COUNT
FROM temp LEFT OUTER JOIN (
SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR) A
ON temp.HOUR = A.HOUR;
- temp 테이블은 0 ~ 23을 포함하는 HOUR 컬럼을 가진다.
- LEFT OUTER JOIN을 통해서 temp 테이블의 모든 레코드가 표시되고 A는 일치되는 HOUR 컬럼값이 포함된다. 또 IFNULL() 함수를 통해 HOUR가 NULL인 경우, 0으로 변경한다.
Ref.
1. 프로그래머스 (입양 시각 구하기(2)) / https://school.programmers.co.kr/learn/courses/30/lessons/59413
* 잘못된 부분에 대해 댓글 남겨주시면 감사하겠습니다! 😀
'Computer Science > Database' 카테고리의 다른 글
[SQL/MySQL] 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2023.05.01 |
---|---|
[SQL/MySQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.04.30 |
[SQL/MySQL] Window 함수로 큰 값/작은 값 조회하기 (1) | 2023.04.20 |
[MySQL] GROUP BY 주의사항 (0) | 2023.03.29 |
[MySQL] MAX 함수 (0) | 2023.03.26 |
단순하게 데이터 범위 내에서 시간대별 통계 내기
SELECT HOUR(DATETIME) HOUR, COUNT(ANIMAL_ID) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR;

모든 시간대별 통계내기
- 재귀적 쿼리(with recursive)와 left outer join을 사용한다.
WITH RECURSIVE temp as (
(SELECT 0 HOUR)
union
(SELECT HOUR+1 FROM temp where HOUR < 23)
)
SELECT temp.HOUR, IFNULL(A.COUNT, 0) COUNT
FROM temp LEFT OUTER JOIN (
SELECT HOUR(DATETIME) HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
ORDER BY HOUR) A
ON temp.HOUR = A.HOUR;
- temp 테이블은 0 ~ 23을 포함하는 HOUR 컬럼을 가진다.
- LEFT OUTER JOIN을 통해서 temp 테이블의 모든 레코드가 표시되고 A는 일치되는 HOUR 컬럼값이 포함된다. 또 IFNULL() 함수를 통해 HOUR가 NULL인 경우, 0으로 변경한다.
Ref.
1. 프로그래머스 (입양 시각 구하기(2)) / https://school.programmers.co.kr/learn/courses/30/lessons/59413
* 잘못된 부분에 대해 댓글 남겨주시면 감사하겠습니다! 😀
'Computer Science > Database' 카테고리의 다른 글
[SQL/MySQL] 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2023.05.01 |
---|---|
[SQL/MySQL] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.04.30 |
[SQL/MySQL] Window 함수로 큰 값/작은 값 조회하기 (1) | 2023.04.20 |
[MySQL] GROUP BY 주의사항 (0) | 2023.03.29 |
[MySQL] MAX 함수 (0) | 2023.03.26 |