Notice
Recent Posts
Recent Comments
Archives
반응형
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Today
Total
11-13 08:57
250x250
관리 메뉴

꿈꾸는 개발자의 블로그

[프로그래머스] Oracle - (SQL 고득점 Kit) JOIN 오랜 기간 보호한 동물(1) 본문

Algorithm/Programmers

[프로그래머스] Oracle - (SQL 고득점 Kit) JOIN 오랜 기간 보호한 동물(1)

aldrn29 2023. 2. 27. 11:27

문제

1) 아직 입양을 못 간 동물 중, 2) 가장 오래 보호소에 있었던 동물 3) 3마리의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 보호 시작일 순으로 조회해야 합니다.

 

문제 풀이

  1. 두 테이블을 LEFT OUTER JOIN 후, ANIMAL_OUTS 테이블에 입양일이 없는 데이터를 찾기 위하여 WHERE 조건을 건다. (LEFT OUTER JOIN : 왼쪽에 오는 ANMAIL_INS 테이블의 데이터는 모두 조회하고, 오른쪽에 오는 ANIMAL_OUTS 테이블에 입양일이 없는 경우에는 NULL로 JOIN 하기 위함)
  2. 가장 오래 보호소에 있었던 동물을 구하기 위하여 보호시작일 순으로 정렬한다.
  3. 동물 3마리만 조회하기 위하여 ROWNUM을 사용한다.

 

전체 코드

SELECT NAME, DATETIME
FROM (
    SELECT a.NAME, a.DATETIME
    FROM ANIMAL_INS a LEFT OUTER JOIN ANIMAL_OUTS b ON a.ANIMAL_ID = b.ANIMAL_ID
    WHERE b.ANIMAL_ID IS NULL
    ORDER BY 2
)
WHERE ROWNUM <= 3

 

728x90
728x90
Comments