반응형
Oracle의 PERCENTILE_CONT와 APPROX_PERCENTILE 활용
Oracle에서 백분위수를 계산할 때 사용할 수 있는 주요 함수와 활용 방법에 대해 정리해 보겠습니다.
PERCENTILE_CONT 함수
`PERCENTILE_CONT` 함수는 연속적인 값을 기반으로 특정 백분위수를 계산하는 함수입니다. 예제는 다음과 같습니다:
SELECT PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY column_name) FROM table_name;
하지만 `PERCENTILE_CONT`는 **상수 값**만을 매개변수로 받을 수 있어 동적으로 값을 변경하기 어렵습니다.
동적으로 백분위 값 설정하기
`PERCENTILE_CONT`의 매개변수를 동적으로 설정하는 방법은 제한적이지만 다음과 같은 방법을 고려할 수 있습니다:
- PL/SQL을 활용한 동적 SQL 실행
- WITH 절을 이용한 사전 백분위값 계산
- APPROX_PERCENTILE을 활용하여 근사값 반환
예를 들어, `WITH` 절을 활용하여 여러 백분위수를 계산할 수 있습니다:
WITH PercentileData AS (
SELECT column_name,
PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY column_name) AS percentile_25,
PERCENTILE_CONT(0.50) WITHIN GROUP (ORDER BY column_name) AS percentile_50,
PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY column_name) AS percentile_75
FROM table_name
)
SELECT * FROM PercentileData;
APPROX_PERCENTILE 활용
Oracle 12c 이상에서는 `APPROX_PERCENTILE`을 활용하여 대량 데이터에서 빠르게 근사 백분위수를 계산할 수 있습니다.
SELECT APPROX_PERCENTILE(column_name, 0.75) FROM table_name;
이 함수는 빠른 성능을 제공하지만 `PERCENTILE_CONT`보다 정확성이 조금 낮을 수 있습니다.
결론
`PERCENTILE_CONT`를 동적으로 활용하는 것은 어렵지만, `WITH` 절을 이용한 미리 계산된 값 활용, `EXECUTE IMMEDIATE`를 통한 PL/SQL 실행, `APPROX_PERCENTILE`을 통한 근사값 추출 등의 방법을 사용할 수 있습니다.
반응형
'갑을병정이야기' 카테고리의 다른 글
DevExpress dxChart & dxDataGrid 활용 가이드(#2) (2) | 2025.06.19 |
---|---|
Eclipse 설정 조정 가이드 (2) | 2025.06.17 |
Oracle에서 시스템 날짜를 활용한 분기 및 반기 계산 (connect by ...) (1) | 2025.06.07 |
DevExpress dxDataGrid 활용 및 JSON 데이터 처리 (2) | 2025.06.05 |
Eclipse Java Code Templates 생성 하는 방법? (1) | 2025.05.30 |