TIL DAY 41-2 || [프로그래머스 SQL JOIN - 오랜 기간 보호한 동물(1),(2) & 보호소에서 중성화한 동물]

TK·2021년 4월 22일
0

TIL

목록 보기
48/55

오랜 기간 보호한 동물(1)

  • ANIMAL_INS 에서 ANIMAL_OUTS 를 LEFT JOIN 해준 뒤,
  • ANIMAL_OUTS 의 ANIMAL_ID 값이 NULL 인 부분을 가지고 와서
  • 오래된 순으로 ORDER BY 뒤 LIMIT 3 을 걸어주면 된다.
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
                         ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME LIMIT 3;

오랜 기간 보호한 동물(2)

  • INNER JOIN 으로 ANIMAL_INS 와 ANIMAL_OUTS 를 합친다.
  • ANIMAL_OUTS.DATETIME 에서 ANIMAL_INS.DATETIME 를 뺀 값을 기준으로 ORDER BY 한다.
  • 두 값을 뺀 값이 가장 높은 것이, 보호소에 있었던 시간이 가장 길기 때문에 DESC 으로 정렬한다.
-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B
                         ON A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY (B.DATETIME - A.DATETIME) DESC LIMIT 2;

보호소에서 중성화한 동물

  • 두 테이블을 OUTER JOIN 한 뒤 입양할 때와 입양보내졌을 때의 SEX 상태가 다른걸 찾으면 된다.
-- 코드를 입력하세요
SELECT A.ANIMAL_ID, A.ANIMAL_TYPE, A.NAME
FROM ANIMAL_INS A INNER JOIN ANIMAL_OUTS B
                          ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.SEX_UPON_INTAKE <> B.SEX_UPON_OUTCOME
ORDER BY A.ANIMAL_ID;

profile
Backend Developer

0개의 댓글