https://school.programmers.co.kr/learn/courses/30/lessons/59045
보호소에서 중성화한 동물
가장 처음 문제를 풀었을때의 쿼리문
-- 동물의 아이디, 타입, 이름을 선택해서 불러오기
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
-- INS 데이터 안에 OUTS 데이터가 포함되어 있는 데이터만 추출
FROM ANIMAL_INS I INNER JOIN ANIMAL_OUTS O ON I.ANIMAL_ID = O.ANIMAL_ID
-- INS 데이터에 중성화가 안되어 있는 경우
WHERE I.SEX_UPON_INTAKE LIKE 'Intact%' AND O.SEX_UPON_OUTCOME NOT LIKE 'Intact%'
ORDER BY ANIMAL_ID
이 쿼리문을 처음 작성을 한 뒤 WHERE문을 짧고 직관적으로 간추릴 수 있겠다는 생각이 들었다.
그렇게 머리를 굴려보며 요약을 하려고 해본 결과가 보호소에 들어오기 전과 후의 중성화한 정보가 서로 같지 않다면 그 말은 곧 보호소에 들어온 이후 중성화를 했다는 말이 되므로 그렇게 쿼리문을 작성하면 되겠다는 가설을 세웠다.
최종적으로 생각을 정리하고 아티클 스터디를 한 뒤에 만들어낸 쿼리문
-- 동물의 아이디, 타입, 이름을 선택해서 불러오기
SELECT I.ANIMAL_ID, I.ANIMAL_TYPE, I.NAME
-- INS 데이터 안에 OUTS 데이터가 포함되어 있는 데이터만 추출
FROM ANIMAL_INS I INNER
JOIN ANIMAL_OUTS O
ON I.ANIMAL_ID = O.ANIMAL_ID
-- INS 데이터에 중성화가 안되어 있는 경우
WHERE I.SEX_UPON_INTAKE != O.SEX_UPON_OUTCOME
ORDER BY ANIMAL_ID
내 생각의 결과는 맞다는 결과가 나왔으며 아티클 스터디로 인해 쿼리문의 가독성을 높인 결과 직관적이고 이해하기 쉬운 쿼리문의 작성이 완료되었다
'SQL' 카테고리의 다른 글
본 캠프 6일차 SQL TIL (0) | 2024.06.29 |
---|---|
본 캠프 5일차 SQL TIL (0) | 2024.06.28 |
본 캠프 4일차 SQL TIL (0) | 2024.06.27 |
본 캠프 3일차 SQL TIL (0) | 2024.06.26 |
본 캠프 2일차 SQL TIL (0) | 2024.06.25 |