Notice
Recent Posts
Recent Comments
Link
drexqq
[Oracle, 오라클] Programmers SQL 고득점 Kit 본문
728x90
반응형
SQL 고득점 Kit : GROUP BY
입양 시각 구하기(2)
-- 코드를 입력하세요
SELECT A.HOUR, COUNT(B.DATETIME) AS COUNT
FROM
(SELECT LEVEL-1 AS HOUR
FROM DUAL
CONNECT BY LEVEL <=24) A,
ANIMAL_OUTS B
WHERE A.HOUR = TO_CHAR(B.DATETIME(+), 'HH24')
GROUP BY A.HOUR
ORDER BY A.HOUR;
시간테이블 A와 입양정보 테이블 B를 HOUR 칼럼을 사용하여 LEFT JOIN해준다.
입양 기록이 없는 시간도 조인 후 남아 있어야하므로 단순히 INNER JOIN이 아닌 LEFT JOIN을 해준다.
조인 후 시간별로 그룹화를 해준 후 시간별로 값이 존재하는 행의 수를 구한다.
이때 COUNT(*)라고 하시면 NULL인 행까지 집계하기 때문에 틀린 답이 된다.
값이 존재하는 경우만 구하기 위해 COUNT(B.DATETIME)이라고 써야 한다.
728x90
반응형
'공부노트 > Programmers' 카테고리의 다른 글
[Java, 자바]Programmers - 3진법 뒤집기 (0) | 2020.10.27 |
---|---|
[Java, 자바]Programmers - 같은 숫자는 싫어 (0) | 2020.06.30 |
[Java, 자바]Programmers - 완주하지 못한 선수 (0) | 2020.06.22 |
[Java, 자바]Programmers - K번째수 (0) | 2020.06.22 |
[Java, 자바]Programmers - 크레인인형뽑기게임 (0) | 2020.06.22 |
Comments