프로그래머스 SQL

입양시각 구하기(2)

cosmohoo 2021. 11. 27. 18:40
반응형

문제설명

 

예시

SQL문을 실행하면 다음과 같이 나와야 합니다.

HOUR                                                                                              COUNT

0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 3
8 1
9 1
10 2
11 13
12 10
13 14
14 9
15 7
16 10
17 12
18 16
19 2
20 0
21 0
22 0
23 0

 

 

SELECT HOUR, COUNT(O.DATETIME) AS COUNT
FROM
(
    SELECT LEVEL-1 AS HOUR
    FROM DUAL 
    CONNECT BY LEVEL<=24
)A LEFT join ANIMAL_OUTS O
ON A.HOUR = to_char(O.DATETIME,'HH24')
GROUP BY HOUR
ORDER BY HOUR;

 

 

=> LEFT JOIN 하는 방법을 알아야 풀 수 있는 문제입니다. 

=> DUMMY TABLE에서 1~23까지 비어있는 테이블을 작성한 후, ANIMAL_OUTS에 있는 시간 값들과 LEFT JOIN을 걸어 표현할 수 있습니다. 

 

** MYSQL과 ORACLE의 문법에는 차이가 있습니다. 

** 해당문제는 ORACLE의 문법으로 문제를 풀었습니다. 

 

 

반응형