< 문제 >
SELECT H.HOUR `HOUR`, COUNT(A.DATETIME) `COUNT`
FROM (
SELECT 0 AS HOUR # << 여기서 HOUR는 문자가 아닌, 함수를 가리킵니다.
UNION
SELECT 1
UNION
SELECT 2
UNION
SELECT 3
UNION
SELECT 4
UNION
SELECT 5
UNION
SELECT 6
UNION
SELECT 7
UNION
SELECT 8
UNION
SELECT 9
UNION
SELECT 10
UNION
SELECT 11
UNION
SELECT 12
UNION
SELECT 13
UNION
SELECT 14
UNION
SELECT 15
UNION
SELECT 16
UNION
SELECT 17
UNION
SELECT 18
UNION
SELECT 19
UNION
SELECT 20
UNION
SELECT 21
UNION
SELECT 22
UNION
SELECT 23
) AS H
LEFT JOIN ANIMAL_OUTS AS A
ON H.HOUR = HOUR(A.DATETIME)
GROUP BY H.HOUR
ORDER BY H.HOUR
< 정답 및 설명 >
- FROM 절의 서브쿼리에서 HOUR 함수로 0~23까지 UNION 연결로 지정해줍니다.
- LEFT JOIN을 통해 서브쿼리 부분을 기준으로 잡아줍니다.
- 기준인 서브쿼리와 ANIMAL_OUTS 테이블의 공통 부분을 HOUR 함수로 묶어줍니다.
- 출력의 기준이될 각 0~23시에 해당하는 H.HOUR로 그룹화합니다.
'Database > Mysql(Maria DB)' 카테고리의 다른 글
SQLyog Mysql(Maria DB) root 패스워드 변경 및 권한 부여 (0) | 2021.05.23 |
---|---|
SQLyog Mysql(Maria DB)에 대해서 (0) | 2021.05.23 |
[MYSQL] 최고 연봉과 해당 연봉을 받는 사원 출력( 서브쿼리 ) (0) | 2021.05.22 |
Hour 함수 (0) | 2021.05.21 |