문제 설명
예시
풀이 방법
입양 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 문제로 결과는 보호 기간이 긴 순으로 조회 해야 합니다. 보호 시작일과 입양일의 차이를 구하여 가장 큰 값 순으로 나열하면 보호 기간이 가장 긴 동물 순으로 나열될 것입니다. 이를 위해 FROM절에서 두 테이블을 모두 적고 ALIAS를 사용하여 ANIMAL_INS는 I, ANIMAL_OUTS는 O으로 구분합니다. WHERE절에서는 각 테이블의 식별자인 아이디가 같을 때의 조건을 제시합니다. 다음으로 O의 입양일에서 I의 보호 시작일을 빼고, 이를 DESC로 내림차순으로 정렬합니다. 그러면 보호 기간이 긴 데이터는 상단에 위치하고 보호 기간이 짧은 데이터는 하단에 위치하게 됩니다. 그리고 가장 길었던 두 마리를 추출하기 위해 LIMIT 2를 사용하여 상위 2개 행을 추출합니다. 마지막으로 쿼리의 첫 줄인 SELECT절에 입양 간 동물 아이디와 입양 간 동물의 이름을 조회하기 위해 O테이블의 동물 아이디, 이름을 조회합니다.
문제 풀이
SELECT O.ANIMAL_ID, O.NAME
FROM ANIMAL_INS I , ANIMAL_OUTS O
WHERE I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2
실행 결과
'코딩테스트 > SQL' 카테고리의 다른 글
SELECT > 서울에 위치한 식당 목록 출력하기 / MySQL 소수점 관련 주요 함수 (0) | 2025.03.25 |
---|---|
[프로그래머스] String, Date 〉Lv2. DATETIME에서 DATE로 형 변환 (0) | 2021.10.29 |
[프로그래머스] String, Date 〉Lv2. 중성화 여부 파악하기 (0) | 2021.10.27 |
[프로그래머스] String, Date 〉Lv2. 이름에 el이 들어가는 동물 찾기 (0) | 2021.10.26 |
[프로그래머스] String, Date 〉Lv2. 루시와 엘라 찾기 (0) | 2021.10.25 |
댓글