(1)
-- ROWNUMBER 사용
SELECT NAME, DATETIME
FROM (
SELECT T1.NAME
, T1.DATETIME
, ROW_NUMBER() OVER(ORDER BY T1.DATETIME ASC) AS RNK
FROM ANIMAL_INS T1
LEFT JOIN ANIMAL_OUTS T2
ON T1.ANIMAL_ID = T2.ANIMAL_ID
WHERE T2.ANIMAL_ID IS NULL
) T01
WHERE RNK <= 3
-- LIMIT 사용
SELECT T1.NAME
, T1.DATETIME
FROM ANIMAL_INS T1
LEFT JOIN ANIMAL_OUTS T2
ON T1.ANIMAL_ID = T2.ANIMAL_ID
WHERE T2.ANIMAL_ID IS NULL
ORDER BY DATETIME
LIMIT 3
(2)
SELECT ANIMAL_ID, NAME
FROM (
SELECT T1.*
, ROW_NUMBER() OVER (ORDER BY T2.DATETIME - T1.DATETIME DESC) AS RNK
FROM ANIMAL_INS T1
INNER JOIN ANIMAL_OUTS T2
ON T1.ANIMAL_ID = T2.ANIMAL_ID
) T01
WHERE RNK <= 2
ORDER BY RNK
'# 코딩 문제 관련 > SQL' 카테고리의 다른 글
[프로그래머스] 입양시각 구하기 (2) (0) | 2022.06.18 |
---|---|
[프로그래머스] 헤비 유저가 보유한 장소 (0) | 2022.06.18 |
[프로그래머스] 있었는데요 없었습니다 (0) | 2022.06.18 |
[프로그래머스] 우유와 요거트가 담긴 장바구니 (0) | 2022.06.18 |
[프로그래머스] 루시와 엘라 찾기 (0) | 2022.06.18 |