🙂 확인 사항
1. ANIMAL_INS, ANIMAL_OUTS 테이블
2. 아직 입양을 못 간 동물
3. 가장 오래 보호소에 있었던 동물
4. 3마리
5. 이름과 보호 시작일 조회
6. 보호 시작일 기준 오름차순 정렬
📝 Language: Oracle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
SELECT *
FROM (
SELECT NAME,
DATETIME
FROM ANIMAL_INS
WHERE ANIMAL_ID NOT IN (
SELECT ANIMAL_ID
FROM ANIMAL_OUTS
)
ORDER BY DATETIME
)
WHERE ROWNUM<=3
;
|
1. NOT IN
- ANIMAL_OUTS에 없는 ANIMAL_ID 조회
2. ROWNUM
- ORACLE 내장 가상 컬럼으로 RECORD의 SEQ 부여
- WHERE가 ORDER보다 실행순서가 빠르므로 INLINE VIEW 활용
1
2
3
4
5
6
7
8
9
10
|
SELECT AI.NAME,
AI.DATETIME
FROM ANIMAL_INS AI
LEFT JOIN ANIMAL_OUTS AO
ON AI.ANIMAL_ID = AO.ANIMAL_ID
WHERE AO.ANIMAL_ID IS NULL
ORDER BY AI.DATETIME
FETCH FIRST 3 ROWS ONLY
;
|
1. LEFT JOIN + IS NULL
- ANIMAL_OUTS가 NULL 값 조회
2. FETCH FIRST
- ORACLE 12C부터 사용 가능
* FETCH FIRST
- 주로 Oracle, PostgreSQL, IBM Db2, Apache Derby와 같은 데이터베이스 시스템에서 지원
* FETCH NEXT
- 주로 SQL Server, Sybase, MySQL와 같은 데이터베이스 시스템에서 지원
지원하는 DB에 따라 구문 변경 유의
🔗 소스 코드
GitHub
'Computer > Algorithm_SQL' 카테고리의 다른 글
[Algorithm_SQL] 조건에 부합하는 중고거래 상태 조회하기 (Success) (0) | 2023.10.17 |
---|---|
[Algorithm_SQL] 자동차 평균 대여 기간 구하기 (Success) (0) | 2023.10.16 |
[Algorithm_SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 (Success) (0) | 2023.10.14 |
[Algorithm_SQL] 있었는데요 없었습니다 (Success) (0) | 2023.10.13 |
[Algorithm_SQL] 성분으로 구분한 아이스크림 총 주문량 (Success) (0) | 2023.10.10 |