본문으로 바로가기
본문으로 바로가기

quantilesTimingWeighted

quantilesTimingWeighted

도입된 버전: v1.1

각 시퀀스 구성원의 가중치를 반영하여, 서로 다른 수준에서 숫자 데이터 시퀀스의 여러 분위수(quantile)를 동시에, 정해진 정밀도로 계산합니다.

이 함수는 quantileTimingWeighted와 동일하지만, 단일 패스로 여러 quantile 수준을 계산할 수 있어 개별 quantile 함수를 각각 호출하는 것보다 더 효율적입니다.

결과는 결정적이며(쿼리 처리 순서에 의존하지 않습니다), 웹 페이지 로딩 시간이나 백엔드 응답 시간과 같은 분포를 설명하는 시퀀스를 처리하도록 최적화되어 있습니다.

정확도

다음 조건을 만족하면 계산은 정확합니다.

  • 값의 총 개수가 5670개를 넘지 않는 경우
  • 값의 총 개수가 5670개를 초과하지만 페이지 로딩 시간이 1024ms 미만인 경우

그 외의 경우, 계산 결과는 16ms의 배수 중 가장 가까운 값으로 반올림됩니다.

참고

페이지 로딩 시간 분위수(quantile)를 계산할 때, 이 함수는 quantiles보다 더 효율적이고 정확합니다.

구문

quantilesTimingWeighted(level1, level2, ...)(expr, weight)

매개변수

  • level — 분위수의 레벨입니다. 0에서 1 사이의 하나 이상의 상수 부동 소수점 수입니다. level 값은 [0.01, 0.99] 범위에서 사용할 것을 권장합니다. Float*

인수

  • expr — 컬럼 값에 대한 표현식으로, Float* 타입 숫자를 반환합니다. 음수 값이 함수에 전달되면 동작은 정의되지 않습니다. 값이 30,000(페이지 로딩 시간 30초 초과)보다 크면 30,000으로 간주됩니다. Float*
  • weight — 시퀀스 요소의 가중치가 담긴 컬럼입니다. 가중치는 해당 값의 발생 횟수입니다. UInt*

반환 값

지정된 레벨과 동일한 순서로 구성된 분위수 배열입니다. Array(Float32)

예시

복수의 가중 타이밍 분위수 계산

SELECT quantilesTimingWeighted(0.5, 0.99)(response_time, weight) FROM t;
┌─quantilesTimingWeighted(0.5, 0.99)(response_time, weight)─┐
│ [112, 162]                                                │
└───────────────────────────────────────────────────────────┘

관련 항목