반응형
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
보호기간이 가장 긴 동물은
입양을 간 날짜에서 보호가 시작된 날짜를 빼면
그만큼 보호소에 있었던 기간이 된다.
내가 작성한 답:
SELECT I.ANIMAL_ID, I.NAME
FROM ANIMAL_INS I
JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2;
다른 사람이 작성한 답:
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A, ANIMAL_OUTS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY B.DATETIME-A.DATETIME DESC
LIMIT 2
DATE 타입 끼리는 기본적인 연산이 가능하므로
ORDER BY 절에서 보면 B.DATETIME-A.DATETIME을 한 뒤
그 값들을 내림차순으로 정렬하였다.
그렇게 되면 보호소에 가장 오래 있었던 동물이 맨 위로 오게 되고
두 마리만 출력하면 되므로 LIMIT 2 이렇게 마지막에 작성하였다.
반응형
'기타 > 문제풀이' 카테고리의 다른 글
[MySQL] 입양 시각 구하기 (0) | 2022.10.06 |
---|---|
[MySQL] NULL처리 (0) | 2022.10.06 |
[MySQL] 여러기준으로 정렬하기 (0) | 2022.10.06 |
[Python] 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? (0) | 2022.09.30 |
[Python_문제풀이] Functions 함수2 (0) | 2022.04.26 |