2024. 9. 23. 18:00ㆍSQL 고득점 Kit/JOIN
https://school.programmers.co.kr/learn/courses/30/lessons/59043
문제 설명
ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다.
ANIMAL_INS 테이블며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
INTAKE_CONDITION | VARCHAR(N) | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_INTAKE | VARCHAR(N) | FALSE |
ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다.
ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물 종, 입양일, 이름, 성별 및 중성화 여부를 나타냅니다.
ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다.
NAME | TYPE | NULLABLE |
ANIMAL_ID | VARCHAR(N) | FALSE |
ANIMAL_TYPE | VARCHAR(N) | FALSE |
DATETIME | DATETIME | FALSE |
NAME | VARCHAR(N) | TRUE |
SEX_UPON_OUTCOME | VARCHAR(N) | FALSE |
관리자의 실수로 일부 동물의 입양일이 잘못 입력되었습니다. 보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.
예시
예를 들어, ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블이 다음과 같다면
<ANIMAL_INS> 테이블
ANIMAL_ID | ANIMAL_TYPE | DATETIME | INTAKE_CONDITION | NAME | SEX_UPON_INTAKE |
A350276 | Cat | 2017-08-13 13:50:00 | Normal | Jewel | Spayed Female |
A381217 | Dog | 2017-07-08 09:41:00 | Sick | Cherokee | Neutered Male |
<ANIMAL_OUTS> 테이블
ANIMAL_ID | ANIMAL_TYPE | DATETIME | NAME | SEX_UPON_INTAKE |
A350276 | Cat | 2018-01-28 17:51:00 | Jewel | Spayed Female |
A381217 | Dog | 2017-06-09 18:51:00 | Cherokee | Neutered Male |
SQL문을 실행하면 다음과 같이 나와야 합니다.
ANIMAL_ID | NAME |
A381217 | Cherokee |
보호 시작일보다 입양일이 더 빠른 동물의 아이디와 이름을 조회하는 문제입니다.
보호소에 입소하기 전에 입양이 되었던 동물들을 찾는 문제입니다.
여기서는 기록이 누락된 부분은 없기 때문에, 동물들의 ID를 기준으로 이너 조인을 실행한 다음, WHERE 조건으로 입소 시간과 입양 시간을 비교하면 됩니다.
정답 코드를 작성해보겠습니다.
SELECT AI.ANIMAL_ID, AI.NAME
FROM ANIMAL_INS AI
INNER JOIN
ANIMAL_OUTS AO
USING(ANIMAL_ID)
WHERE AI.DATETIME > AO.DATETIME
ORDER BY AI.DATETIME ASC;
입소 시간이 입양 시간보다 크다면, 입양이 먼저 이뤄지고 입소가 되었다는 뜻입니다.
해당하는 조건을 WHERE 조건절에 작성해주시면 됩니다.
'SQL 고득점 Kit > JOIN' 카테고리의 다른 글
[JOIN] 보호소에서 중성화한 동물 (0) | 2024.09.25 |
---|---|
[JOIN] 오랜 기간 보호한 동물(1) (0) | 2024.09.24 |
[JOIN] 없어진 기록 찾기 (0) | 2024.09.22 |
[JOIN] 그룹별 조건에 맞는 식당 목록 출력하기 (1) | 2024.09.20 |
[JOIN] 조건에 맞는 도서와 저자 리스트 출력하기 (3) | 2024.09.17 |