프로그래머스 level4 입양 시각 구하기(2)
코딩테스트 연습 - 입양 시각 구하기(2)
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물
programmers.co.kr
SELECT H.HOUR, NVL(COUNT, 0) as COUNT
FROM
(SELECT TO_CHAR(DATETIME, 'HH24') AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY TO_CHAR(DATETIME, 'HH24')) A
RIGHT JOIN
(SELECT LEVEL - 1 as HOUR FROM DUAL CONNECT BY LEVEL <= 24) H
ON A.HOUR = H.HOUR
ORDER BY H.HOUR
- GROUP BY로 묶을 때 COUNT(*) 해주면 GROUP BY 컬럼 기준으로 COUNT
- (다른 사람 풀이 참고) 0~23까지 hour을 모두 가지고 있는 테이블을 새로 만들어준다.
--> ❗ 계층형 쿼리를 활용 ❗
SELECT LEVEL - 1 as HOUR FROM DUAL CONNECT BY LEVEL <= 24
- 두 테이블을 RIGHT JOIN할 때 as A라고 붙이면 오류 발생
SQL 실행 중 오류가 발생하였습니다.
ORA-00933: SQL command not properly ended
- 오라클은 (+)로 OUTER JOIN 표현 가능
WHERE A.HOUR(+) = H.HOUR #RIGHT OUTER JOIN
- VIEW로 만들어보려고 했으나 권한 할당이 안되는 것 같다.
'study > 알고리즘' 카테고리의 다른 글
[알고리즘 / Oracle] 프로그래머스 - 보호소에서 중성화한 동물, 우유와 요거트가 담긴 장바구니 (0) | 2021.11.25 |
---|---|
[알고리즘 / 자료구조] 우선순위 큐(Priority Queue)와 힙(Heap) (2) | 2021.11.25 |
[알고리즘/프로그래머스] 스택/큐 - 다리를 지나는 트럭, 주식가격 (5) | 2021.11.24 |
[알고리즘/프로그래머스] 스택/큐 - 기능개발, 프린터 (0) | 2021.11.23 |
[알고리즘 / Oracle] 프로그래머스 - 입양 시각 구하기(1) (3) | 2021.11.19 |