[프로그래머스 / ORACLE] 오랜 기간 보호한 동물(1)
2023. 10. 19. 22:09ㆍSQL/ORACLE
내코드
--1
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) T
WHERE ROWNUM <= 3
--2
SELECT *
FROM (SELECT A.NAME, A.DATETIME
FROM ANIMAL_INS A
WHERE A.ANIMAL_ID NOT IN (SELECT B.ANIMAL_ID FROM ANIMAL_OUTS B)
ORDER BY A.DATETIME) T
WHERE ROWNUM <=3
느낀점
문제가 너무 길어서 못 가져왔다.
JOIN 을 활용하는 문제이긴하나 다른 풀이방식도 존재하기때문에 두가지 쿼리문을 가져왔다.
어떤게 더 효율적인지 정확히는 모르겠다만 SELECT문 안에 SELECT문을 한번 더 사용하는 것보다 JOIN을 사용하는 것이 더 효율적인것으로 알고있다.
'SQL > ORACLE' 카테고리의 다른 글
[프로그래머스/ORACLE] 동명 동물 수 찾기(GROUP BY 로 묶은 데이터의 각 개수 구하기) (1) | 2023.10.22 |
---|---|
[프로그래머스 / ORACLE] 상위 n개 레코드 (날짜의 MIN, MAX 값 구하기) (1) | 2023.10.22 |
[프로그래머스/ORACLE] 12세 이하인 여자 환자 목록 출력하기 (1) | 2023.10.19 |
[프로그래머스/ORACLE] 조건에 맞는 사용자와 총 거래금액 조회하기 (1) | 2023.10.18 |
[프로그래머스/ORACLE] 중복제거하기 (0) | 2023.10.18 |