250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

String, Date - 오랜 기간 보호한 동물(2) 본문

SQL

String, Date - 오랜 기간 보호한 동물(2)

jjjk84 2023. 8. 28. 21:18
728x90

1. 문제

 

입양을 간 동물 중,

보호 기간이 가장 길었던 동물 두 마리의

아이디와 이름을 조회하는 SQL문을 작성해주세요.

이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.

https://school.programmers.co.kr/learn/courses/30/lessons/131534

2. 문제 조건

 

  1. 입양을 간 동물 -> OUTS 테이블에 데이터가 존재해야 하므로 JOIN시 LEFT JOIN 활용
  2. 보호 기간이 가장 길었던 동물 두 마리 -> ORDER BY DESC 후에 LIMIT 2
  3. 아이디와 이름을 조회 -> SELECT
  4. 결과는 보호 기간이 긴 순으로 조회 -> 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