TOP N 쿼리
TOP N 쿼리
- 전체 데이터에서 상위 N개 행 추출 (페이징)
TOP-N 행 추출 방법
ROWNUM
- ROWNUM은 조회 결과가 만들어지는 과정에서 순서대로 부여되며, ORDER BY보다 먼저 적용
- 출력 데이터 기준으로 행 번호 부여
- 단, 가상 번호라 특정 행 지정 불가
-> 즉, 서브 쿼리로 정렬하고 뽑아야 상위/하위 N개 추출 가능
> 연산 불가
SELECT ROWNUM, 열들 FROM 테이블 WHERE ROWNUM <=3;
-> >= 를 써야 함. (근데 ROWNUM = 1은 됨. 이건 전체 데이터 반환과 같음)
RANK
- 윈도우 함수의 RANK
- 동일 값은 같은 순위, 그 다음 값은 건너 뜀
(ex: 1,2,2,4...)
FETCH
- 출력되는 행의 수 제한
- OREDER BY 뒤에 사용
- OFFSET N {ROW|ROWS}: 처음 N 개 건너 뛴 결과
FETCH {FIRST|NEXT} N {ROW|ROWS} ONLY
- OFFSET으로 건너 뛰고 가져올 행 개수 지정
- FIRST : OFFSET 어없을 때, 처음부터 가져오란 뜻
- NEXT : OFFSET 있을 때, OFFSET 이후 N개 가져오란 뜻
- ONLY : 결과 제한 의미 (필수)
TOP N
- SQL SERVER에서 상위 N개 추출
- WITH TIES 쓰면 동순위까지 추출 가능