입양 시각 구하기(2)
https://school.programmers.co.kr/learn/courses/30/lessons/59413
- 문제 풀이 - 1 2 3 4 5 6 7 8 9 10 - SELECT D.HOUR, COUNT(D.HOUR) AS "COUNT" FROM ( SELECT LEVEL -1 AS "HOUR" FROM DUAL CONNECT BY LEVEL < 25 ) D LEFT JOIN ANIMAL_OUTS O ON D.HOUR = TO_CHAR(O.DATETIME, 'FMHH24') GROUP BY D.HOUR ORDER BY D.HOUR; - TO_CHAR 함수에서 “FM” 키워드는 숫자나 날짜의 형식에서 나타나는 불필요한 leading zero(앞에 나타나는 0)를 제거하는 데 사용된다. “FM” 키워드를 사용하면 포맷 문자 다음에 나타나는 leading zero가 제거된다.
 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 - SELECT HOURS.HOUR, COUNT(HOUR_COUNT.ANIMAL_ID) AS "COUNT" FROM ( SELECT TO_CHAR(DATETIME, 'HH24') AS "HOUR", ANIMAL_ID FROM ANIMAL_OUTS ) HOUR_COUNT RIGHT JOIN ( SELECT LEVEL - 1 AS "HOUR" FROM DUAL CONNECT BY LEVEL <= 24 ) HOURS ON HOUR_COUNT.HOUR = HOURS.HOUR GROUP BY HOURS.HOUR ORDER BY HOURS.HOUR; - ANIMAL_OUTS테이블에서 시간대별로 입양된 동물의 건수를 조회한다.- TO_CHAR(DATETIME, 'HH24')를 사용하여- DATETIME필드에서 시간을 추출하고,- RIGHT JOIN을 사용하여 0부터 23까지의 모든 시간대를 포함한 결과를 얻는다.
 
- CONNECT BY LEVEL- 오라클에서 계층형 쿼리를 작성할 때 사용되는 구문 중 하나이다.
- CONNECT BY LEVEL을 사용하면 트리 구조에서 어떤 단계에 있는지에 따라 값을 생성하거나 필터링할 수 있다.
- CONNECT BY LEVEL을 사용하면- LEVEL을 활용하여 원하는 만큼의 행을 생성할 수 있다.
 
- LEVEL- 오라클 데이터베이스에서 실행되는 모든 쿼리에서 사용 가능한 가상 열로, 계층적인 쿼리에서 어떤 단계(LEVEL)에 위치하는지를 나타내는 정수값이다.
- 즉, 계층의 단계를 나타내는 정수값으로, 주로 계층적인 데이터를 다룰 때 사용된다. 1부터 사용자가 지정한 범위까지 LEVEL값이 증가하면서 행을 생성한다.
- 계층적인 쿼리가 아니라면, LEVEL은 기본적으로 모든 값이 0으로 설정된다. 즉, 계층이 없는 경우에는 모든 행이 동일한 단계(레벨 0)에 속한다고 간주한다.
 
- DUAL테이블과- CONNECT BY LEVEL을 사용하여 0부터 23까지의 숫자를 생성한다.
- 날짜 및 시간 포맷 지정자- TO_CHAR(DATETIME, 'HH24')은 24시간 형식으로 시간을 나타내고,- TO_CHAR(DATETIME, 'HH')는 12시간 형식으로 시간을 나타낸다.- HH (12-hour clock)
 - HH는 12시간 형식의 시간을 나타낸다.
- 01부터 12까지의 값을 가진다.
- 오전(AM) 또는 오후(PM)를 나타내기 위해 AM 또는 PM을 사용한다.
- 09:30 AM,- 04:45 PM
 
 
- 오답
- 실행 결과
 이 기사는 저작권자의  CC BY 4.0  라이센스를 따릅니다.
_1.png)
_2.png)
_3.png)
_4.png)
_5.png)
_6.png)
_7.png)