RATIO_TO_REPORT 창 함수 - Amazon Redshift

RATIO_TO_REPORT 창 함수

창 또는 파티션에서 값의 합에 대한 임의의 값 비율을 계산합니다. 값의 비율을 구하는 공식은 다음과 같습니다.

value of ratio_expression argument for the current row / sum of ratio_expression argument for the window or partition

다음은 위와 같은 공식의 사용을 나타내는 데이터 세트입니다.

Row# Value Calculation RATIO_TO_REPORT 1 2500 (2500)/(13900) 0.1798 2 2600 (2600)/(13900) 0.1870 3 2800 (2800)/(13900) 0.2014 4 2900 (2900)/(13900) 0.2086 5 3100 (3100)/(13900) 0.2230

반환 값의 범위는 0부터 1까지입니다(0과 1 포함). ratio_expression이 NULL이면 반환 값은 NULL입니다. partition_expression의 값이 고유한 경우 함수는 해당 값에 대해 1을 반환합니다.

구문

RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )

인수

ratio_expression

비율을 결정할 값을 제공하는 표현식(열 이름 등)입니다. 이 표현식은 숫자 데이터 형식을 갖거나, 혹은 묵시적으로 1로 변환될 수 있어야 합니다.

그 외에 다른 분석 함수는 ratio_expression에서 사용할 수 없습니다.

OVER

창 파티션을 지정하는 절입니다. OVER 절에는 창 순서 또는 창 프레임 명세가 포함될 수 없습니다.

PARTITION BY partition_expression

선택 사항. OVER 절에서 각 그룹의 레코드 범위를 설정하는 표현식입니다.

반환 타입

FLOAT8

예시

아래 예에서는 WINSALES 테이블을 사용합니다. WINSALES 테이블 생성 방법에 대한 자세한 내용은 창 함수 예제를 위한 샘플 테이블 섹션을 참조하세요.

다음 예에서는 모든 셀러 수량의 합계에 대한 셀러 수량의 각 행의 보고서 대비 비율 값을 계산합니다.

select sellerid, qty, ratio_to_report(qty) over() from winsales order by sellerid; sellerid qty ratio_to_report -------------------------------------- 1 30 0.13953488372093023 1 10 0.046511627906976744 1 10 0.046511627906976744 2 20 0.09302325581395349 2 20 0.09302325581395349 3 30 0.13953488372093023 3 20 0.09302325581395349 3 15 0.06976744186046512 3 10 0.046511627906976744 4 10 0.046511627906976744 4 40 0.18604651162790697

다음은 파티션별로 각 판매자의 판매 수량에 대한 비율을 계산하는 예입니다.

select sellerid, qty, ratio_to_report(qty) over(partition by sellerid) from winsales; sellerid qty ratio_to_report ------------------------------------------- 2 20 0.5 2 20 0.5 4 40 0.8 4 10 0.2 1 10 0.2 1 30 0.6 1 10 0.2 3 10 0.13333333333333333 3 15 0.2 3 20 0.26666666666666666 3 30 0.4