본문 바로가기
🖊️Certificate/📌SQLD

[SQLD] 2과목 - 2장) 5절. Top N 쿼리

by 빛나고요 2024. 3. 7.
BIG

2과목. SQL 기본 및 활용
2장. SQL 활용
5절. Top N 쿼리

# Top N 쿼리
- 페이징 처리를 효과적으로 수행하기 위해 사용
- 전체 결과에서 특정 N개 추출

# Top N 행 추출 방법
① ROWNUM
② RANK
③ FETCH

# ROWNUM
- 출력된 데이터 기준으로 행 번호 부여
- 절대적인 행 번호가 아닌 가상의 번호이므로 특정 행을 지정할 수 없음(= 연산 불가)
- 첫번째 행이 증가한 이후 할당되므로 ‘>’ 연산 사용 불가(0은 가능)

# FETCH 행
- 출력될 행의 수를 제한하는 절
- Oracle 12C 이상부터 제공(그 전 번전에는 주로 ROWNUM 사용)
- SQL-Server 사용 가능
- ORDER BY 절 뒤에 사용(내부 파싱 순서도 ORDER BY 뒤)

- 문법
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
OFFSET N { ROW | ROWS }
FETCH { FIRST | NEXT } N { ROW | ROWS } ONLY

· OFFSET: 건너뛸 행의 수
· N: 출력할 행의 수
· FETCH: 출력할 행의 수를 전달하는 구문
· FIRST: OFFSET 을 쓰지 않았을 때 처음부터 N 행 출력 명령
· NEXT: OFFSET 을 사용했을 경우 제외한 행 다음부터 N 행 출력 명령
· ROW | ROWS: 행의 수에 따라 하나일 경우 단수, 여러값이면 복수형(특별히 구분하지 않아도 됨)

댓글