ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. 예시 예를 들어, ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블이 다음과 같다면 ANIMAL_INS ANIMAL_IDANIMAL_TYPEDATETIMEINTAKE_CONDITIONNAMESEX_UPON_INTAKEA352713Cat2017-04-13 16:29:00NormalGiaSpayed FemaleA350375Cat2017-03-06 15:01:00NormalMeoNeutered MaleANIMAL_OUTS ANIMAL_IDANIMAL_TYPEDATETIMENAMESEX_UPON_OUTCOMEA349733Dog2017-09-27 19:09:00AllieSpayed FemaleA352713Cat2017-04-25 12:25:00GiaSpayed FemaleA349990Cat2018-02-02 14:18:00SpiceSpayed FemaleANIMAL_OUTS 테이블에서
따라서 SQL문을 실행하면 다음과 같이 나와야 합니다. ANIMAL_IDNAMEA349733AllieA349990Spice본 문제는 Kaggle의 "Austin Animal Center Shelter Intakes and Outcomes"에서 제공하는 데이터를 사용하였으며 ODbL의 적용을 받습니다. 풀이다음부터는 문제 읽기 시작부터 정답까지 계속 녹화를 해볼까.. 제출한 오답 1
-> ANIMAL_OUTS 테이블을 기준으로 RIGHT OUTER JOIN을 해줘야 한다고 생각했는데.. 문제가 원하는건 입양기록(ANIMAL_OUTS)과 입소기록(ANIMAL_INS)을 매칭하는게 아니라 입소기록(ANIMAL_INS)이 없는 데이터였다. 그렇다면 입양과 입소기록이 매칭되는 데이터를 ANIMAL_OUTS에서 빼면 될 것 같다. 제출한 오답 2
-> SQLD 공부할 때 배웠던 EXCEPT 집합 연산자를 사용하고자 했다. 그렇지만 MYSQL에는 없는 문법이고 아래와 같은 에러가 났다. SQL 실행 중 오류가 발생하였습니다. |