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 |
29 | 30 | 31 |
Tags
- 프로그래머스 조건에 부합하는 중고거래 상태 조회하기
- 조건에 부합하는 중고거래 댓글 조회하기
- 프로그래머스 #프로그래머스 우유와 요거트가 담긴 장바구니 #우유와 요거트가 담긴 장바구니
- 프로그래머스 조건에 맞는 사용자 정보 조회하기
- 프로그래머스 #프로그래머스 NULL 처리하기 #NULL 처리하기
- 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 #프로그래머스 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기
- 자동차 대여 기록에서 장기/단기 대여 구분하기 #프로그래머스 자동차 대여 기록에서 장기/단기 대여 구분하기
- 조건에 부합하는 중고거래 상태 조회하기
- 프로그래머스 조건에 부합하는 중고거래 댓글 조회하기
- 프로그래머스 #오랜 기간 보호한 동물(2) #프로그래머스 오랜 기간 보호한 동물(2)
- 자동차 대여 기록 별 대여 금액 구하기
- 프로그래머스 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기
- 태블로 테이블 계산
- 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 #경기도에 위치한 식품창고 목록 출력하기 #프로그래머스 경기도에 위치한 식
- 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 #식품분류별 가장 비싼 식품의 정보 조회하기 #프로그래머스 식품분류별 가장 비
- 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 #프로그래머스 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기
- SQL #DDL
- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- 조건에 맞는 사용자 정보 조회하기
- 프로그래머스 #프로그래머스 입양 시각 구하기(2) #입양 시각 구하기(2) #프로그래머스 입양 시각 구하기(1) #입양 시각 구하기(1)
- 저자 별 카테고리 별 매출액 집계하기
- 프로그래머스 #프로그래머스 헤비 유저가 소유한 장소 #헤비 유저가 소유한 장소
- 프로그래머스 #프로그래머스 중성화 여부 파악하기 #중성화 여부 파악하기
- 프로그래머스 #프로그래머스 서울에 위치한 식당 목록 출력하기 #서울에 위치한 식당 목록 출력하기
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #프로그래머스 조건별로 분류하여 주문상태 출력하기
- 조건에 맞는 사용자와 총 거래금액 조회하기
- 프로그래머스 조건에 맞는 사용자와 총 거래금액 조회하기
- 프로그래머스 #프로그래머스 5월 식품들의 총매출 조회하기 #5월 식품들의 총매출 조회하기
- 프로그래머스 취소되지 않은 진료 예약 조회하기 #취소되지 않은 진료 예약 조회하기
Archives
- Today
- Total
데이터 분석
프로그래머스 - 입양 시각 구하기(1), 입양 시각 구하기(2) (TO_CHAR, 계층형 질의) 본문
- TO_CHAR
- 계층형 질의
입양 시각 구하기(1)
TO_CHAR(숫자|날짜 [, FORMAT])
: 숫자나 날짜를 주어진 FORMAT 형태로 문자열 타입으로 변환한다.
FORMAT 형식에서
- HH24 : 24시 형태로 표현
- FMHH24 : 24시 형태로 표현 단, 앞에 0 생략 (ex. 01 > 1)
SELECT TO_CHAR(DATETIME, 'FMHH24') HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
WHERE TO_CHAR(DATETIME, 'HH24') BETWEEN '09' AND '19'
GROUP BY TO_CHAR(DATETIME, 'FMHH24')
ORDER BY TO_NUMBER(TO_CHAR(DATETIME, 'FMHH24'))
;
https://school.programmers.co.kr/learn/courses/30/lessons/59412
입양 시각 구하기(2)
계층형 질의
계층형 질의에서 사용되는 가상 컬럼
- LEVEL : 루트 데이터를 1로 시작 > LEAF까지 하위로 갈수록 1씩 증가
계층형 질의 절
- START WITH 절 : 레벨의 시작점
- CONNECT BY 절 : CONNECT BY절이 만족할 경우 그 다음에 자식 레벨 지정
내가 푼 답
SELECT A.HOUR, NVL(B.COUNT, 0) COUNT
FROM (
SELECT (LEVEL-1) AS HOUR
FROM DUAL
CONNECT BY LEVEL <= 24
) A LEFT OUTER JOIN(
SELECT TO_CHAR(DATETIME, 'HH24') HOUR, COUNT(*) COUNT
FROM ANIMAL_OUTS
GROUP BY TO_CHAR(DATETIME, 'HH24')
ORDER BY HOUR
) B
ON A.HOUR = B.HOUR
ORDER BY HOUR
;
우선 인라인뷰 안에 있는 3~5번쨰 줄은 0 부터 24시까지 시각을 나타낼 컬럼을 테이블로 작성한 것이다.
그 후, 이 시각 테이블의 값은 모두 나타나야 되기 떄문에 OUTER JOIN을 사용했다.
마지막으로 B테이블의 NULL값을 0으로 바꿔주면 끝 (코드 1번쨰 줄 - NVL함수 사용)
https://school.programmers.co.kr/learn/courses/30/lessons/59413
'SQL > 프로그래머스 코딩' 카테고리의 다른 글
프로그래머스 - 우유와 요거트가 담긴 장바구니 (DISTINCT) (0) | 2023.02.28 |
---|---|
프로그래머스 - DATETIME에서 DATE로 형 변환 (TO_CHAR) (0) | 2023.02.27 |
프로그래머스 - 오랜 기간 보호한 동물(2) (0) | 2023.02.27 |
프로그래머스 - NULL 처리하기 (NVL) (0) | 2023.02.27 |
프로그래머스 - 중성화 여부 파악하기 (CASE) (0) | 2023.02.27 |