inblog logo
|
DailyCoding
    SQLD

    2-2-5. Top N 쿼리

    박은서's avatar
    박은서
    Mar 01, 2026
    2-2-5. Top N 쿼리
    Contents
    1. ROWNUM 슈도 칼럼1️⃣ 슈도(Pseudo Column) 칼럼2️⃣ ROWNUM2. TOP 절1️⃣ SQL Server에서 사용하는 TOP 절2️⃣ 오라클에서 사용하는 ROW LIMITING 절

    1. ROWNUM 슈도 칼럼

    1️⃣ 슈도(Pseudo Column) 칼럼

    1) 슈도 칼럼

    • 데이터베이스 시스템에서 제공하는 특별한 종류의 칼럼
    • 실제로 존재하는 데이터 아님
    • 가상의 칼럼을 만들어 쿼리에서 일반 칼럼처럼 사용 가능
    • 데이터베이스 작업을 더 효율적으로 만들고, 특정 정보에 쉽게 접근할 수 있게 해주는 유용한 도구로 활용됨

    2) 슈도 칼럼의 특징

    • 시스템 생성
      • 데이터베이스 시스템에 의해 자동으로 생성되고 관리됨
    • 읽기 전용
      • 대부분의 경우, 값 변경 불가
    • 동적 값
      • 쿼리 실행 시 동적으로 값 할당

    3) 슈도 칼럼 (오라클)

    • ROWNUM
      • 쿼리 결과의 각 행에 순차적인 번호 부여
    • ROWID
      • 각 행의 고유 식별자
    • LEVEL
      • 계층적 쿼리에서 트리 레벨 표시
    • CURRVAL, NEXTVAL
      • 시퀀스 관련 작업에 사용됨

    4) 슈도 칼럼 (다른 데이터베이스 시스템)

    • SQL Server
      • @@ERROR, @@IDENTITY
    • MySQL
      • FOUND_ROWS(), ROW_COUNT()

    2️⃣ ROWNUM

    1) ROWNUM

    • 결과 집합에서 각 행에 고유한 번호 할당 (1부터 순차적으로 부여)
    • 쿼리 실행 순서에 따라 부여되므로 결과 집합의 행 순서가 중요한 경우 사용 가능
    • 특별한 형식 없고, 하나의 칼럼처럼 사용

    2) ROWNUM 예

    SELECT ROWNUM, EMPNO, ENAME, SAL FROM ( SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY SAL DESC );
    ROWNUM
    EMPNO
    ENAME
    SAL
    1
    7839
    KING
    5000
    2
    7788
    SCOTT
    3000
    3
    7902
    FORD
    3000
    4
    7566
    JONES
    2975
    5
    7698
    BLAKE
    2850
    …
    …
    …
    …

    2. TOP 절

    1️⃣ SQL Server에서 사용하는 TOP 절

    1) TOP 절

    • SQL Server에서 결과 집합의 상위 N개의 행을 반환하는 데 사용되는 절
    • 결과 집합의 크기를 제한
    • 쿼리의 성능 최적화
    • 특정 수의 행만 선택할 때 매우 유용함

    2) TOP 절의 예

    SELECT TOP (3) EMPNO, ENAME, SAL FROM EMP WHERE DEPTNO = 20 ORDER BY SAL DESC;
    EMPNO
    ENAME
    SAL
    7902
    FORD
    3000
    7788
    SCOTT
    3000
    7566
    JONES
    2975

    2️⃣ 오라클에서 사용하는 ROW LIMITING 절

    1) ROW LIMITING 절

    • 오라클에서 결과 집합의 행 수를 제한하는 데 사용됨
    • 데이터베이스 쿼리의 효율성 높이는 데 도움
    • FETCH FIRST와 OFFSET 절을 사용하여 결과 집합의 상위 N개의 행을 선택하거나 특정 위치에서부터 N개의 행 선택 가능

    2) FETCH FIRST를 사용한 ROW LIMITING 절의 예

    SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY SAL DESC FETCH FIRST 5 ROWS ONLY; // 상위 5개 행 선택하여 반환
    EMPNO
    ENAME
    SAL
    7839
    KING
    5000
    7902
    FORD
    3000
    7788
    SCOTT
    3000
    7566
    JONES
    2975
    7698
    BLAKE
    2850

    2) OFFSET를 사용한 ROW LIMITING 절의 예

    SELECT EMPNO, ENAME, SAL FROM EMP ORDER BY SAL DESC OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; // 상위 5개 행 건너뛰고, 다음 5개 행 선택하여 반환
    EMPNO
    ENAME
    SAL
    7782
    CLARK
    2450
    7499
    ALLEN
    1600
    7844
    TURNER
    1500
    7934
    MILLER
    1300
    7654
    MARTIN
    1250
    Share article
    Contents
    1. ROWNUM 슈도 칼럼1️⃣ 슈도(Pseudo Column) 칼럼2️⃣ ROWNUM2. TOP 절1️⃣ SQL Server에서 사용하는 TOP 절2️⃣ 오라클에서 사용하는 ROW LIMITING 절

    DailyCoding

    RSS·Powered by Inblog