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의 실제 중앙값 간의 차이에 대한 이론적 제한은 없습니다.
- 예측은 경우에 따라 정확한 값을 생성할 수 있지만 언제 정의할 수 있는 신뢰할 수 있는 조건이 없습니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기