데이터 놀이터
String, Date - 오랜 기간 보호한 동물(2) 본문
728x90
1. 문제
입양을 간 동물 중,
보호 기간이 가장 길었던 동물 두 마리의
아이디와 이름을 조회하는 SQL문을 작성해주세요.
이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131534
2. 문제 조건
- 입양을 간 동물 -> OUTS 테이블에 데이터가 존재해야 하므로 JOIN시 LEFT JOIN 활용
- 보호 기간이 가장 길었던 동물 두 마리 -> ORDER BY DESC 후에 LIMIT 2
- 아이디와 이름을 조회 -> SELECT
- 결과는 보호 기간이 긴 순으로 조회 -> ORDER BY
3. 코드 작성
/*
1. 입양을 간 동물 중
2. 보호 기간이 가장 길었던 동물 두 마리
3. 아이디와 이름 조회
4. 보호기간이 긴 순으로 조회
*/
SELECT OUTS.ANIMAL_ID
, OUTS.NAME
FROM ANIMAL_OUTS AS OUTS
LEFT JOIN ANIMAL_INS AS INS ON OUTS.ANIMAL_ID = INS.ANIMAL_ID
ORDER BY (DATEDIFF(OUTS.DATETIME, INS.DATETIME) + 1) DESC
LIMIT 2;
4. 회고
- ORDER BY의 정렬 조건이 꼭 출력하는 컬럼일 필요가 없다는 사실을 알았다.
- JOIN시에 INNER인지 LEFT인지 FULL OUTER JOIN인지 한번 더 생각해보고 문제를 풀어야겠다.
728x90
'SQL' 카테고리의 다른 글
JOIN - 보호소에서 중성화한 동물 (0) | 2023.08.29 |
---|---|
JOIN - 상품을 구매한 회원 비율 구하기 (0) | 2023.08.29 |
String, Date - 조건에 맞는 사용자 정보 조회하기 (0) | 2023.08.28 |
String, Date - 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2023.08.26 |
String, Date - 취소되지 않은 진료 예약 조회하기 (0) | 2023.08.24 |