inblog logo
|
An's Blog
    코딩테스트SQL

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

    윤설안's avatar
    윤설안
    May 22, 2025
    [코딩테스트] 48. 있었는데요 없었습니다.
    Contents
    테이블 index문제예시풀이

    테이블 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로 보호 시작일을 기준으로 빠른 순이라고 했으니 INS의 DATETIME으로 정렬 해주었다.
    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
    Contents
    테이블 index문제예시풀이

    An's Blog

    RSS·Powered by Inblog