프로그래머스/[프로그래머스 - ORACLE] Lv.4
[프로그래머스 - ORACLE] 입양 시각 구하기(2)
코딩하는 흰둥이
2023. 3. 23. 10:31
CREATE 문
CREATE TABLE ANIMAL_OUTS (
ANIMAL_ID VARCHAR(50) NOT NULL,
ANIMAL_TYPE VARCHAR(50) NOT NULL,
DATETIME TIMESTAMP NOT NULL,
NAME VARCHAR(50) NULL,
SEX_UPON_OUTCOME VARCHAR(50) NOT NULL
);
- 내 풀이
SELECT
A.HOUR,
COUNT(B.HOUR) AS COUNT
FROM
(SELECT LEVEL - 1 AS HOUR FROM DUAL CONNECT BY LEVEL <= 24) A LEFT JOIN
(SELECT TO_CHAR(DATETIME, 'HH24') AS HOUR FROM ANIMAL_OUTS ) B
ON A.HOUR = B.HOUR
GROUP BY A.HOUR
ORDER BY A.HOUR ASC;
임시 테이블에서 CONNECT BY 문을 이용하여 0부터 23까지의 시간을 만들주고 본 테이블에서 시간만 가져와서 JOIN을 건다
이때 서로의 시간을 KEY값으로 잡고 0부터 23까지의 시간이 출력되어야 하기 때문에 LEFT JOIN을 건다
COUNT 함수를 사용하기 때문에 CROUP BY 를 이용해야한다.