상위 n개 레코드 [SQL]

성배·2025년 2월 11일
0

코딩테스트

목록 보기
45/53

ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.
동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

생각한 풀이
1. ANIMAL_INS 테이블을 DATETIME으로 정렬 ROWNUM이 1인 값을 출력하자


SELECT NAME
FROM (SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME)
WHERE ROWNUM=1

 

🐴 풀이
1. FROM절에서 서브쿼리로 ANIMAL_INS를 DATETIME으로 정렬한다
2. 정렬한 테이블에서 ROWNUM이 1인 값의 NAME을 출력한다


Oracle에서 서브쿼리를 사용하지 않고 문제를 풀 수 있는 방법

SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME
FETCH FIRST 1 ROW ONLY;

🐴 풀이
1. 서브쿼리 없이 FETCH FIRST 1 ROW ONLY로 정렬 후 테이블에서 첫 번째 값만 가져온다

0개의 댓글