[코딩테스트] 48. 있었는데요 없었습니다.

편준민's avatar
May 22, 2025
[코딩테스트] 48. 있었는데요 없었습니다.

테이블 index

📌

ANIMAL_INS 

AME
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 

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문을 작성해주세요. 이때 결과는 보호 시작일이 빠른 순으로 조회해야합니다.

예시

notion image

풀이

INS와 OUTS의 날짜 비교를 하면 비교적 쉬운 문제였다. INS와 OUTS의 날짜를 비교하기 위해서는 두 테이블에 날짜가 필요 했기 때문에 INNER JOIN을 사용하였다.
SELECT * from ANIMAL_INS a inner join ANIMAL_OUTS b On a.ANIMAL_ID = b.ANIMAL_ID
그리고 where절에서 INS의 날짜가 OUTS보다 더 빠르면 잘못된 데이터이기 때문에 INS > OUT 의 조건으로 찾은 다음 order by로 보호 시작일을 기준으로 빠른 순이라고 했으니 INSDATETIME으로 정렬 해주었다.
SELECT a.ANIMAL_ID, a.NAME from ANIMAL_INS a inner join ANIMAL_OUTS b On a.ANIMAL_ID = b.ANIMAL_ID where a.DATETIME > b.DATETIME order by a.DATETIME
notion image
notion image
Share article

YunSeolAn