[과목2.SQL 기본 및 활용 - 3-11. Top N 쿼리]
1. Top N 쿼리?
: 특정 순서로 데이터를 부분적으로 쿼리하는 것
DBMS마다 조금씩 다름
2. ROWNUM 슈도 컬럼 (Oracle 문법)
: SQL 처리결과시 각 행에 임시로 부여되는 일련번호
3. ROWNUM 주의사항
(1) Oracle의 경우, 데이터의 일부가 먼저 추출된 후에 데이터에 대한 정렬 작업이 이루어진다. è 인라인 뷰를 이용하여 집합을 정렬한 후 rownum적용 시켜 올바른 SQL문 사용할 것
4. TOP 절( SQL Server 문법)
: TOP절은 결과 집합으로 출력되는 행의 수를 제한한다.
예시) TOP( Expression) [PERCENT] [WITH TIES]
- Expression : 반환할 행 수 지정
- PERCENT : 쿼리결과 집합에서 처음 Expression%의 행만 반환됨 (Expression건이 아니라 Expression % 만큼으로 반환해라는 것)
- WITH TIES : order by 절이 지정된 경우에만 사용 가능하며, 마지막 행과 같은 값이 있으면, 추가행이 출력되도록 지정한다. (ex. Top(2)여도 2등중에 같은 값을 가진사람이 여러명이면 여러명을 다보여준다. 동점자..)
5. ROW LIMITING절 (ANSI 표준-모두 다 사용가능)
(1) ROW LIMITING절 문법
[OFFSET N {ROW | ROWS }]
[FETCH {FIRST | NEXT} [{rowcount | percent PERCENT}] { ROW | ROWS } {ONLY | WITH TIES}]
- OFFSET N : 건너뛸 행의 개수 지정
- FETCH : 반환할 행의 개수 또는 백분율 지정
- ONLY : 지정된 행의 개수나 백분율 만큼만 행을 반환
- WITH TIES : 마지막 행에 대한 동순위 포함해서 반환