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 를 이용해야한다.
'프로그래머스 > [프로그래머스 - ORACLE] Lv.4' 카테고리의 다른 글
[프로그래머스 - ORACLE] 5월 식품들의 총매출 조회하기 (0) | 2023.03.23 |
---|---|
[프로그래머스 - ORACLE] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.03.23 |
[프로그래머스 - ORACLE] 우유와 요거트가 담긴 장바구니 (0) | 2023.03.23 |
[프로그래머스 - ORACLE] 보호소에서 중성화한 동물 (0) | 2023.03.23 |
[프로그래머스 - ORACLE] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2023.03.22 |
댓글