<ANIMAL_OUTS> 테이블 구조
<문제>
<문제 풀이>
SELECT
HOURS.HOUR,
COUNT(ANIMAL_OUTS.ANIMAL_ID) AS COUNT
FROM
(SELECT 0 AS 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 HOURS
LEFT JOIN
ANIMAL_OUTS ON HOURS.HOUR = HOUR(ANIMAL_OUTS.DATETIME)
GROUP BY
HOURS.HOUR
ORDER BY
HOURS.HOUR;
처음 풀때는 간단하게 테이블을 입양된 시각으로 그룹하여 문제를 풀었다.
하지만 그러면 입양되지 않은 시간에 대한 컬럼이 존재하지 않았다.
그래서 아예 0~23에 대한 컬럼을 새로 만들었다!
그 후 해당 컬럼을 기준으로 ANIMAL_OUTS 테이블을 left join 하였다.
조인하는 키값은 입양시각에 대한 시각으로 하였다. 그 후 각 HOURS 컬럼 기준으로 GROUP 과 ORDER 절을 작성하였다.
처음 막혔을때 당황했지만 이렇게 해야지 라고 생각한 뒤로는 보니 SQL 쿼리가 단순하게 짜여진것 같아서 신기하다.
테이블 구조에 대한 이해와 쿼리 구문능력이 좀 더 능수능란 했으면 좋겠다..!
'IT > SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 - 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.01.29 |
---|---|
[MySQL] 프로그래머스 - 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.01.29 |
[MySQL] 프로그래머스 - 그룹별 조건에 맞는 식당 목록 출력하기 (1) | 2024.01.29 |
[MySQL] 프로그래머스 - 주문량이 많은 아이스크림들 조회하기 (0) | 2024.01.25 |
[MySQL] 프로그래머스 - 저자 별 카테고리 별 매출액 집계하기 (0) | 2024.01.25 |