[SQL] TOP-N 분석

김용준·2022년 11월 5일

SQL

목록 보기
15/17

TOP-N 분석이란?

조건에 맞는 최상위 레코드 n개 혹은 최하위 레코드 n개를 조회하는 쿼리다. ROWNUM이라는 컬럼을 사용한다. ROWNUM은 조회된 행에 행번호를 1번부터 순서대로 부여하는 '의사컬럼'이다.

SELECT ROWNUM, COLUMN1, COLUMN2, COLUMN3 . . .
FROM (SELECT COLUMN1, COLUMN2, COLUMN3 . . .
      FROM 테이블
	  ORDER BY 분석대상컬럼명 정렬방향)
WHERE ROWNUM <= N;
-- 직원들을 급여순으로 순위를 매겼을 때 1, 2, 3위 직원의 이름과 급여 조회
SELECT ROWNUM, FIRST_NAME, SALARY
FROM (SELECT FIRST_NAME, SALARY
      FROM EMPLOYEES
      ORDER BY SALARY DESC)
WHERE ROWNUM <= 3;

FROM절의 서브쿼리에서 직원이름, 급여를 조회하고 급여의 내림차순으로 정렬한다. 그 다음 메인쿼리에서 서브쿼리에서 조회된 테이블에 ROWNUM컬럼을 통해 순서대로 행번호를 부여한다. ROWNUM <= 3이라는 조건을 붙이면 상위 세 명의 이름과 급여를 조회할 수 있다.

profile
차선이 모여 최선이 된다.

0개의 댓글