메인 콘텐츠로 건너뛰기

quantilesTimingWeighted

도입된 버전: v1.1.0 각 시퀀스 구성원의 가중치를 고려하여, 정해진 정밀도로 숫자 데이터 시퀀스의 여러 분위수를 서로 다른 수준에서 동시에 계산합니다. 이 함수는 quantileTimingWeighted와 동일하지만, 여러 분위수 수준을 한 번에 계산할 수 있으므로 개별 분위수 함수를 각각 호출하는 것보다 더 효율적입니다. 결과는 결정적입니다(쿼리 처리 순서에 의존하지 않습니다). 이 함수는 웹 페이지 로딩 시간이나 백엔드 응답 시간과 같은 분포를 나타내는 시퀀스를 처리하는 데 최적화되어 있습니다. 정확도 다음 조건에서는 계산이 정확합니다.
  • 전체 값 수가 5670개를 초과하지 않습니다.
  • 전체 값 수가 5670개를 초과하더라도 페이지 로딩 시간이 1024ms 미만입니다.
그렇지 않으면 계산 결과는 가장 가까운 16ms 배수로 반올림됩니다.
페이지 로딩 시간 분위수를 계산할 때 이 함수는 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) 예시 가중치가 적용된 여러 타이밍 분위수 계산
Query
SELECT quantilesTimingWeighted(0.5, 0.99)(response_time, weight) FROM t;
Response
┌─quantilesTimingWeighted(0.5, 0.99)(response_time, weight)─┐
│ [112, 162]                                                │
└───────────────────────────────────────────────────────────┘
관련 항목
마지막 수정일 2026년 6월 10일