다음을 통해 공유


percentile(), percentiles()(집계 함수)

함수는 percentile()expr로 정의된 모집단의 지정된 가장 가까운 순위 백분위수에 대한 추정치를 계산합니다. 정확도는 백분위수 지역의 인구 밀도에 따라 달라집니다.

percentiles() 는 과 유사하게 percentile()작동합니다. 그러나 percentiles() 는 한 번에 여러 백분위수 값을 계산할 수 있습니다. 이 값은 각 백분위수 값을 개별적으로 계산하는 것보다 더 효율적입니다.

가중치 백분위수 계산은 백분위수()를 참조하세요.

참고

이 함수는 summarize 연산자와 함께 사용됩니다.

Syntax

percentile(Expr,백분위)

percentiles(Expr,백분위수)

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 형식 필수 Description
expr string ✔️ 집계 계산에 사용할 식입니다.
백분위 int 또는 long ✔️ 백분위수를 지정하는 상수입니다.
백분위수 int 또는 long ✔️ 하나 이상의 쉼표로 구분된 백분위수입니다.

반환

그룹 내 지정된 백분위수의 expr 에 대한 예상값이 있는 테이블을 각각 별도의 열에 반환합니다.

참고

단일 열의 백분위수 값을 반환하려면 백분위수 반환을 배열로 반환을 참조하세요.

예제

단일 백분위수 계산

다음 예제에서는 샘플 집합의 DamageProperty 95%보다 크고 샘플 집합의 5% 미만인 값을 보여 있습니다.

StormEvents | summarize percentile(DamageProperty, 95) by State

출력

표시된 결과 테이블에는 처음 10개의 행만 포함됩니다.

시스템 상태 percentile_DamageProperty_95
대서양 남부 0
FLORIDA 40,000
GEORGIA 143333
미시시피 80,000
아메리칸사모아 250000
켄터키 35000
오하이오 150000
캔자스 51392
미시간 49167
ALABAMA 50000

여러 백분위수 계산

다음 예제에서는 5, 50(중앙값) 및 95를 사용하여 동시에 계산되는 값을 DamageProperty 보여 줍니다.

StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State

출력

표시된 결과 테이블에는 처음 10개의 행만 포함됩니다.

시스템 상태 percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
대서양 남부 0 0 0
FLORIDA 0 0 40,000
GEORGIA 0 0 143333
미시시피 0 0 80,000
아메리칸사모아 0 0 250000
켄터키 0 0 35000
오하이오 0 2000 150000
캔자스 0 0 51392
미시간 0 0 49167
ALABAMA 0 0 50000
... ...

백분위수 배열로 반환

개별 열의 값을 반환하는 대신 함수를 percentiles_array() 사용하여 동적 배열 형식의 단일 열에 백분위수 를 반환합니다.

Syntax

percentiles_array(Expr,백분위수)

매개 변수

이름 형식 필수 Description
expr string ✔️ 집계 계산에 사용할 식입니다.
백분위수 int, long 또는 dynamic ✔️ 하나 이상의 쉼표로 구분된 백분위수 또는 백분위수의 동적 배열입니다. 각 백분위수는 정수 또는 긴 값일 수 있습니다.

반환

그룹에 지정된 백분위수의 expr 에 대한 예상값을 동적 배열 형식의 단일 열로 반환합니다.

예제

쉼표로 구분된 백분위수

여러 백분위수는 백분위수 ()와 같이 여러 열이 아닌 단일 동적 열에서 배열로 가져올 수 있습니다.

TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName

출력

결과 테이블에는 처음 10개 행만 표시됩니다.

SensorName percentiles_Value avg_Value
sensor-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
sensor-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
sensor-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
sensor-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
sensor-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
sensor-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
sensor-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
sensor-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
sensor-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
sensor-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

백분위수의 동적 배열

percentiles_array 백분위수는 정수 또는 부동 소수점 숫자의 동적 배열에 지정할 수 있습니다. 배열은 상수여야 하지만 리터럴일 필요는 없습니다.

TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName

출력

결과 테이블에는 처음 10개 행만 표시됩니다.

SensorName percentiles_Value avg_Value
sensor-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
sensor-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
sensor-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
sensor-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
sensor-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
sensor-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
sensor-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
sensor-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
sensor-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
sensor-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

가장 가까운 순위 백분위수

오름차순으로 정렬된 정렬된 값 목록의 P번째 백분위수(<0 P<= 100)는 목록에서 가장 작은 값입니다. 데이터의 P%는 백분위수에 대한 Wikipedia 문서에서P번째 백분위수 값보다 작거나 같습니다.

0번째 백분위수는 모집단의 가장 작은 멤버로 정의합니다.

참고

계산의 근사치 특성을 감안할 때 실제 반환된 값은 모집단의 멤버가 아닐 수 있습니다. 가장 가까운 순위 정의는 P=50이 중앙값의 보간 정의를 준수하지 않음을 의미합니다. 특정 애플리케이션에 대해 이러한 불일치의 중요성을 평가할 때 모집단의 크기와 추정 오류를 고려해야 합니다.

백분위수 추정 오류

백분위 수 집계는 T-Digest를 사용하여 근사값을 제공합니다.

참고

  • 추정 오류의 범위는 요청한 백분위수의 값에 따라 달라집니다. 가장 정확한 정확도는 [0..100] 눈금의 양쪽 끝에 있습니다. 백분위수 0과 100은 분포의 정확한 최소값과 최대값입니다. 정확도는 눈금의 중앙으로 갈수록 서서히 감소합니다. 그것은 중앙값에서 최악이며 1 %로 제한됩니다.
  • 오류 범위는 값이 아닌 순위에서 관찰됩니다. 백분위수(X, 50)가 Xm 값을 반환한다고 가정합니다. 예측값은 X 값의 최소 49%와 최대 51%가 Xm과 작거나 같도록 보장합니다. Xm과 X의 실제 중앙값 간의 차이에 대한 이론적 제한은 없습니다.
  • 예측은 경우에 따라 정확한 값을 생성할 수 있지만 언제 정의할 수 있는 신뢰할 수 있는 조건이 없습니다.