quantileTimingWeighted
quantileTimingWeighted
도입 버전: v1.1
주어진 정밀도로, 각 시퀀스 구성원의 가중치에 따라 숫자 데이터 시퀀스의 분위수를 계산합니다.
결과는 결정적입니다(쿼리 처리 순서에 의존하지 않습니다). 웹 페이지 로딩 시간이나 백엔드 응답 시간과 같은 분포를 나타내는 시퀀스를 처리하도록 최적화되어 있습니다.
하나의 쿼리에서 서로 다른 레벨을 가진 여러 quantile* 함수를 사용할 때, 내부 상태는 결합되지 않습니다(즉, 쿼리가 가능한 것보다 덜 효율적으로 동작합니다). 이러한 경우 quantiles 함수를 사용하십시오.
정확도
다음 조건에서 계산은 정확합니다.
- 전체 값 개수가 5670을 초과하지 않는 경우
- 전체 값 개수가 5670을 초과하지만 페이지 로딩 시간이 1024ms 미만인 경우
그 외의 경우, 계산 결과는 16ms 배수 중 가장 가까운 값으로 반올림됩니다.
참고
페이지 로딩 시간 분위수를 계산할 때 이 함수는 quantile보다 더 효율적이고 정확합니다.
참고
함수에 전달된 값이 없는 경우(quantileTimingIf 사용 시) NaN이 반환됩니다. 이는 결과가 0이 되는 경우와 구분하기 위한 것입니다. NaN 값의 정렬에 대한 내용은 ORDER BY 절을 참조하십시오.
구문
별칭: medianTimingWeighted
매개변수
level— 선택 사항입니다. 분위수 수준입니다. 0에서 1 사이의 상수 부동 소수점 값입니다.level값은[0.01, 0.99]범위에서 사용할 것을 권장합니다. 기본값: 0.5.level=0.5일 때 함수는 중앙값을 계산합니다.Float*
인수
expr— 컬럼 값에 대한 식으로, Float* 타입 숫자를 반환합니다. 함수에 음수 값이 전달되면 동작은 정의되지 않습니다. 값이 30,000(페이지 로딩 시간이 30초를 초과하는 경우)을 넘으면 30,000으로 간주합니다.Float*weight— 시퀀스 요소의 가중치가 있는 컬럼입니다. 가중치는 값이 나타나는 횟수입니다.UInt*
반환 값
지정된 수준의 분위수입니다. Float32
예시
가중치를 사용한 타이밍 분위수 계산