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) #프로그래머스 입양 시각 구하기(1) #입양 시각 구하기(1)
- 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 가격이 제일 비싼 식품의 정보 출력하기 #프로그래머스 #식품분류별 가장 비싼 식품의 정보 조회하기 #프로그래머스 식품분류별 가장 비
- 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기
- SQL #DDL
- 프로그래머스 #오랜 기간 보호한 동물(2) #프로그래머스 오랜 기간 보호한 동물(2)
- 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 강원도에 위치한 생산공장 목록 출력하기 #프로그래머스 #경기도에 위치한 식품창고 목록 출력하기 #프로그래머스 경기도에 위치한 식
- 프로그래머스 #조건별로 분류하여 주문상태 출력하기 #프로그래머스 조건별로 분류하여 주문상태 출력하기
- 프로그래머스 #프로그래머스 5월 식품들의 총매출 조회하기 #5월 식품들의 총매출 조회하기
Archives
- Today
- Total
데이터 분석
프로그래머스 - 오랜 기간 보호한 동물(1) (RANK) 본문
- RANK함수
- JOIN
풀이 (ORACLE)
일단 아직 입양 못간 동물을 출력한다.
SELECT *
FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
;
ANIMAL_INS 테이블을 좌측에 두고 ANIMAL_OUTS 테이블을 우측에 붙여 우측에 NULL값인 데이터만 가져온다.
그 후,
SELECT INS.NAME, INS.DATETIME, RANK() OVER(ORDER BY INS.DATETIME) AS RANK
FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY DATETIME
DATETIME으로 정렬한 후 RANK함수를 이용해 순위를 붙인다.
SELECT NAME, DATETIME
FROM (
SELECT INS.NAME, INS.DATETIME, RANK() OVER(ORDER BY INS.DATETIME) AS RANK
FROM ANIMAL_INS INS LEFT OUTER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID = OUTS.ANIMAL_ID
WHERE OUTS.ANIMAL_ID IS NULL
ORDER BY DATETIME
)
WHERE RANK <= 3
;
이 테이블을 가져와서 가장 오래 된 3번째 까지의 데이터를 추출한다.
https://school.programmers.co.kr/learn/courses/30/lessons/59044
'SQL > 프로그래머스 코딩' 카테고리의 다른 글
프로그래머스 - 루시와 엘라 찾기 (IN) (0) | 2023.02.26 |
---|---|
프로그래머스 - 보호소에서 중성화한 동물, 이름에 el이 들어가는 동물 찾기 (LIKE) (0) | 2023.02.26 |
프로그래머스 - 없어진 기록 찾기, 있었는데요 없었습니다 (JOIN) (0) | 2023.02.26 |
프로그래머스 - 고양이와 개는 몇 마리 있을까, 동명 동물 수 찾기 (GROUP BY, HAVING) (0) | 2023.02.26 |
프로그래머스 - 이름이 없는 동물 아이디, 이름이 있는 동물의 아이디 (IS NULL) (0) | 2023.02.26 |