제로베이스/코딩테스트

[프로그래머스 mysql oracle] 오랜 기간 보호한 동물(1)

진주네카라 2022. 9. 16. 15:13
728x90

 

오랜 기간 보호한 동물(1)

 

문제 설명

코딩테스트 연습 - 오랜 기간 보호한 동물(1) | 프로그래머스 스쿨 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

입출력 예

 

예를 들어, ANIMAL_INS 테이블과 ANIMAL_OUTS 테이블이 다음과 같다면

 

SQL문을 실행하면 다음과 같이 나와야 합니다.

 

입양을 가지 못한 동물이 3마리 이상인 경우만 입력으로 주어집니다.

 

 

입출력 예 설명

입양을 가지 못한 동물은 animal_outs 에 포함되지 않은 다는 것을 의미해서 left join을 사용했다.

left join으로 조회된 동물들 중 datetime이 가장 오래된 동물 3마리만 조회한다.

 

 

 

limit와 rownum

  • 쿼리의 수를 제한해서 볼 수 있는 명령어
  • mysql에서는 limit을 사용한다.
  • oracle에서는 rownum을 사용한다.

 

 

풀이코드1

mysql

-- 코드를 입력하세요
SELECT * 
FROM
(
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
) C
LIMIT 3

 

실행 결과

 

 

풀이코드2

oracle

-- 코드를 입력하세요
SELECT * 
FROM
(
SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A LEFT JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE B.ANIMAL_ID IS NULL
ORDER BY A.DATETIME
)
WHERE ROWNUM <= 3

 

실행 결과

 

 

 

 

 

오랜마에 코테!

 

 

 

728x90