융무의 기술블로그
article thumbnail

https://programmers.co.kr/learn/courses/30/lessons/59411

 

코딩테스트 연습 - 오랜 기간 보호한 동물(2)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

Problem                                                                                                                      

입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.

 

Analysis                                                                                                                     

1.동물 두 마리의 아이디와 이름을 조회하는 SQL문

SELECT B.ANIMAL_ID, B.NAME FROM ANIMAL_INS A 

2.ANIMAL_OUTS 테이블의 ANIMAL_ID는 ANIMAL_INS의 ANIMAL_ID의 외래 키입니다. 입양을 못 간 동물 중, 가장 오래 보호소에 있었던 이므로 ANIMAL_INS의 테이블의 데이터가 필요하다

RIGHT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NOT NULL

3. 결과는 보호 기간이 긴 순으로 조회

ORDER BY A.DATETIME - B.DATETIME LIMIT 2;

 

Solution                                                                                                                    

SELECT B.ANIMAL_ID, B.NAME
FROM ANIMAL_INS A 
RIGHT JOIN ANIMAL_OUTS B ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.ANIMAL_ID IS NOT NULL
ORDER BY A.DATETIME - B.DATETIME LIMIT 2;
profile

융무의 기술블로그

@융무

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!