728x90 윈도우함수4 [ORACLE] NTH_VALUE() 함수로 특정 순위의 값 가져오는 법 Oracle SQL의 NTH_VALUE() 함수는 분석 함수 중 하나로, 윈도 내 N번째 행의 값을 반환하는 기능을 합니다. 특정 순위의 데이터를 추출해야 하는 다양한 실무 상황에서 유용하게 쓰입니다.1. NTH_VALUE() 함수란?NTH_VALUE(expr, N) OVER (PARTITION BY... ORDER BY... ROWS BETWEEN...) 형식으로 사용되며, 윈도 내 N번째 행의 expr 값을 반환합니다.expr: 반환할 열(칼럼)의 값N: 반환할 행의 위치 (1부터 시작)PARTITION BY: 그룹핑 기준ORDER BY: 정렬 기준 (N번째 결정 요소)ROWS BETWEEN: 윈도 범위2. 기본 사용 예제SELECT employee_id, salary, NTH_VALUE(.. 2025. 6. 22. [ORACLE] PERCENTRANK() 함수로 누적 백분위 구하는 방법 PERCENT_RANK()는 Oracle SQL의 윈도(분석) 함수 중 하나로, 지정한 정렬 기준에 따라 각 행이 전체 데이터 내에서 어떤 순위 백분율을 갖는지 알려주는 함수입니다. 특히 동점자가 있는 경우, 해당 순위의 비율을 계산해 주는 점이 CUME_DIST()와의 중요한 차이점입니다.1. 기본 문법PERCENT_RANK() OVER ( PARTITION BY column1 ORDER BY column2)PARTITION BY: 그룹을 나누는 기준 (선택 사항)ORDER BY: 순위를 매기는 기준 (필수)2. PERCENT_RANK() 계산 공식PERCENT_RANK는 다음의 수식으로 계산됩니다:(RANK - 1) / (전체 행 수 - 1)이 공식에 따라 첫 번째 행의 백분율은 항상 0이 되며,.. 2025. 6. 22. [ORACLE] CUME_DIST()로 누적 백분위 실무 중심 예제로 배우기 Oracle SQL의 CUME_DIST() 함수는 누적 백분율(Cumulative Distribution)을 계산하는 분석 함수로, 정렬된 데이터 집합에서 각 행의 상대적인 위치를 백분율로 알려줍니다.1. CUME_DIST() 함수란?CUME_DIST() OVER (PARTITION BY... ORDER BY...) 형식으로 사용되며, 주어진 그룹 내 정렬 기준에 따라 누적 백분율 값을 계산합니다.문법:CUME_DIST() OVER ( PARTITION BY column1 ORDER BY column2)PARTITION BY: 그룹 기준ORDER BY: 정렬 기준2. CUME_DIST()의 동작 원리특정 값 이하의 행 수를 전체 행 수로 나누어 계산합니다.공식: 누적 비율 = 해당 값 이하의 행 수 .. 2025. 6. 1. [ORACLE] DENSE_RANK() 함수 완전 정복 : 순위 함수 실전 예제로 배우기 1. DENSE_RANK란?DENSE_RANK는 Oracle의 분석 함수 중 하나로, 지정된 정렬 기준에 따라 순위를 부여하지만 동일한 값이 있어도 순위를 건너뛰지 않는 특징을 가집니다. 이 함수는 데이터 집계 및 정렬 결과를 순서화할 때 유용합니다.📌 기본 문법DENSE_RANK() OVER (PARTITION BY 컬럼명 ORDER BY 컬럼명 [ASC|DESC])2. DENSE_RANK의 작동 원리중복된 값이 존재할 경우에도 순위가 연속적으로 유지됩니다. 예를 들어, 동일한 급여가 있는 두 명의 직원이 1등이면, 다음 순위는 2등이 아니라 3등이 됩니다 (RANK의 경우). 하지만 DENSE_RANK는 다음 순위를 2등으로 유지합니다.예제: 직원 급여 순위SELECT ename, sal, .. 2025. 5. 31. 이전 1 다음 728x90