SQL 고득점 Kit - 8.15

김동현·2024년 8월 15일

SQL 고득점 Kit

목록 보기
29/56

JOIN - 보호소에서 중성화한 동물

문제

보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화1되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요.

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

풀이

## 중성화 안 된 동물 추출
WITH intact AS (SELECT *
FROM ANIMAL_INS
WHERE SEX_UPON_INTAKE LIKE 'Intact%')


SELECT ao.ANIMAL_ID, ao.ANIMAL_TYPE, ao.NAME
FROM ANIMAL_OUTS ao
INNER JOIN intact i 
ON ao.ANIMAL_ID = i.ANIMAL_ID
WHERE ao.SEX_UPON_OUTCOME NOT LIKE 'Intact%' ## 중성화가 안 된 동물이 아닌 애들 추출

리뷰

  • 어제처럼 NOT EXISTS를 이용해서 해결하려고 하는데 굳이?라는 생각이 들었다. 그래서 CTE를 이요하여 중성화가 안 된 동물을 추출하고 그것은 조인했다.
  • 조건으로 OUT 테이블이 입양을 간 동물의 정보니까 거기서 중성화가 안 된 동물이 아니라면 입양했을 때 중성화를 진행한 것으로 판단하고 NOT LIKE를 써봤는데 바로 성공~~
  • 이번에는 아무 도움 없이 10분 만에 풀었다 ㅎㅎ

GitHub

https://github.com/lasentia/SQL_Study/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/4/59045.%E2%80%85%EB%B3%B4%ED%98%B8%EC%86%8C%EC%97%90%EC%84%9C%E2%80%85%EC%A4%91%EC%84%B1%ED%99%94%ED%95%9C%E2%80%85%EB%8F%99%EB%AC%BC

profile
'The best way to get started is to quit talking and begin doing.'

0개의 댓글