Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 하드웨어
- SAML
- >>
- map차트
- 태블로
- 맵차트
- HTTP
- 배치파일
- Network
- SSO
- 색상코드
- SQL 테이블 삭제
- 선형회귀
- AWS
- dns
- SSL
- 방화벽
- 날짜 함수
- Data Analysis
- tableau
- MySQL
- batch
- Linear models
- SSO인증
- 파이썬
- 클라우드
- 테이블만들기
- SQL
- https
Archives
- Today
- Total
SeaForest
[프로그래머스] 입양 시각 구하기(2) 본문
프로그래머스 | Lv.4
단순하게 group by와 시간 함수를 사용하는 문제라고 생각하였지만, 문제에서 제시한 'ANIMAL_OUTS' 테이블에는 7시부터 19시까지의 입양건수만 있기 때문에 0시~6시, 그리고 18시~23시까지 시간대 데이터를 추가해야한다.
1. 정답 쿼리
-- WTIH문과 DUAL 테이블을 활용하여 0시~23시 데이터 생성
WITH HOUR AS
( SELECT LEVEL-1 AS HOUR
FROM DUAL
CONNECT BY LEVEL-1 < 24 )
-- 위에서 만든 HOUR 테이블에 ANIMAL_OUTS 테이블을 FULL OUTER JOIN
SELECT H.HOUR,
NVL(COUNT,0) AS COUNT --NVL함수를 사용하지 않으면 count가 0인 경우는 NULL로 표시됨.
FROM HOUR H
FULL OUTER JOIN
( SELECT TO_CHAR(DATETIME,'HH24') AS HOUR, COUNT(*) AS COUNT
FROM ANIMAL_OUTS
GROUP BY TO_CHAR(DATETIME,'HH24') ) O
ON H.HOUR = O.HOUR
ORDER BY HOUR;
2. TO_CHAR(datetime,'HH')
>> 예를 들어 19시는 07시로 나오게 됨.
SELECT animal_id, animal_type, datetime, to_char(datetime,'HH') as hour
FROM ANIMAL_OUTS ;
3. TO_CHAR(datetime,'HH24')
>> 24시 기준으로 계산이 되어 19시는 19시로 표기됨
SELECT animal_id, animal_type, datetime, to_char(datetime,'HH24') as hour
FROM ANIMAL_OUTS ;
'SQL' 카테고리의 다른 글
Oracle 날짜 함수 (0) | 2024.08.11 |
---|---|
SQL 쿼리 가독성 높이기 (1) | 2024.01.07 |
[SQL] 정규화, 반정규화 (0) | 2023.04.09 |
[SQL] DELETE vs TRUNCATE vs DROP (0) | 2022.10.13 |
[SQL] MySQL 기본 명령어 (0) | 2022.10.05 |