728x90
입양 시각 구하기(2)
0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.
-- MYSQL
WITH RECURSIVE num(HOUR) AS (
SELECT 0
UNION ALL
SELECT HOUR+1 FROM num WHERE HOUR<23
)
SELECT A.HOUR,
CASE WHEN B.CNT IS NULL
THEN 0 ELSE B.CNT END AS COUNT
FROM num A
LEFT JOIN (SELECT HOUR(DATETIME) AS H, COUNT(ANIMAL_ID) AS CNT
FROM ANIMAL_OUTS
GROUP BY 1) AS B
ON A.HOUR = B.H
-- ORACLE
SELECT A.HOUR, COUNT(B.TIME) AS COUNT
FROM (SELECT LEVEL-1 AS HOUR FROM DUAL CONNECT BY level <25) A
LEFT OUTER JOIN (SELECT TO_CHAR(DATETIME, 'hh24') as TIME FROM ANIMAL_OUTS) B
ON A.HOUR = B.TIME
GROUP BY A.HOUR
ORDER BY A.HOUR;
728x90
'<프로그래머스 고득점 SQL Kit>' 카테고리의 다른 글
| [SQL 프로그래머스 GROUP BY] 진료과별 총 예약 횟수 출력하기(ORACLE, MYSQL) (0) | 2023.05.24 |
|---|---|
| [SQL 프로그래머스 GROUP BY] 성분으로 구분한 아이스크림 총 주문량(ORACLE, MYSQL) (0) | 2023.05.24 |
| [SQL 프로그래머스 GROUP BY] 년, 월, 성별 별 상품 구매 회원 수 구하기(ORACLE, MYSQL) (0) | 2023.05.24 |
| [SQL 프로그래머스 GROUP BY] 카테고리 별 도서 판매량 집계하기(ORACLE, MYSQL) (0) | 2023.05.24 |
| [SQL 프로그래머스 GROUP BY] 조건에 맞는 사용자와 총 거래금액 조회하기(ORACLE, MYSQL) (0) | 2023.05.24 |