with dd as (
SELECT i.ANIMAL_ID as ANIMAL_ID, DATEDIFF(o.DATETIME, i.DATETIME) as dd
FROM ANIMAL_INS i
JOIN ANIMAL_OUTS o on i.ANIMAL_ID = o.ANIMAL_ID
)
SELECT i.ANIMAL_ID, i.NAME
FROM ANIMAL_INS i
join dd on i.ANIMAL_ID = dd.ANIMAL_ID
ORDER BY dd.dd desc
limit 2
조회 시 ID와 NAME만 출력하기 위해
with 절 사용하여 key인 animal_id 컬럼과 DATEDIFF 사용한 컬럼으로 dd를 만들었다.
이후 id와 이름만 조회하고 with절과 join 하여 내림차순 정렬 후, 2개만 출력하기 위해 limit 2 사용했다.
with절 없이 풀 수 있을 것 같은데 방법이 떠오르지 않아 with절 사용하여 해결했다.
'프로그래머스 > 코딩테스트 연습' 카테고리의 다른 글
SQL lv3 대여 기록이 있는 자동차 리스트 구하기 (0) | 2024.04.22 |
---|---|
SQL lv2 루시와 엘라 찾기 (0) | 2024.04.22 |
SQL lv4 보호소에서 중성화 한 동물 (0) | 2024.04.19 |
SQL lv2 성분으로 구성한 아이스크림 총 주문량 (0) | 2024.04.19 |
SQL lv3 조건별로 분류하여 주문상태 출력하기 (0) | 2024.04.16 |