메인 콘텐츠로 건너뛰기

quantileTiming

도입된 버전: v1.1.0 지정된 정밀도로 숫자 데이터 시퀀스의 분위수를 계산합니다. 결과는 결정적입니다(즉, 쿼리 처리 순서에 영향을 받지 않습니다). 이 함수는 웹 페이지 로딩 시간이나 백엔드 응답 시간처럼 분포를 나타내는 시퀀스를 처리하도록 최적화되어 있습니다. 하나의 쿼리에서 레벨이 서로 다른 여러 quantile* 함수를 사용하면 내부 상태가 결합되지 않습니다(즉, 쿼리가 더 비효율적으로 실행됩니다). 이 경우 quantiles 함수를 사용하십시오. 정확도 다음 조건에서는 계산이 정확합니다.
  • 전체 값 수가 5670을 초과하지 않습니다.
  • 전체 값 수가 5670을 초과하더라도 페이지 로딩 시간이 1024ms보다 작습니다.
그렇지 않으면 계산 결과는 가장 가까운 16ms 배수로 반올림됩니다.
페이지 로딩 시간의 분위수를 계산할 때 이 함수는 quantile보다 더 효율적이고 정확합니다.
함수에 전달된 값이 없으면(quantileTimingIf를 사용하는 경우) NaN이 반환됩니다. 이는 이런 경우를 결과가 0이 되는 경우와 구분하기 위한 것입니다. NaN 값 정렬에 관한 참고 사항은 ORDER BY 절을 참조하십시오.
구문
quantileTiming(level)(expr)
별칭: medianTiming 매개변수
  • level — 선택 사항입니다. 분위수 레벨입니다. 0에서 1 사이의 상수 부동소수점 숫자입니다. level 값은 [0.01, 0.99] 범위에서 사용하는 것을 권장합니다. 기본값은 0.5입니다. level=0.5이면 함수는 중앙값을 계산합니다. Float*
인수
  • expr — 컬럼 값을 대상으로 하는 표현식으로, Float* 타입의 숫자를 반환합니다. 함수에 음수 값이 전달되면 동작이 정의되지 않습니다. 값이 30,000보다 크면(페이지 로딩 시간이 30초를 초과하는 경우) 30,000으로 간주됩니다. Float*
반환 값 지정한 레벨의 분위수입니다. 함수에 값이 전달되지 않으면(quantileTimingIf를 사용할 때) NaN이 반환됩니다. 이는 이러한 경우를 결과가 0인 경우와 구분하기 위한 것입니다. Float32 예시 타이밍 분위수 계산
Query
CREATE TABLE t (response_time UInt32) ENGINE = Memory;
INSERT INTO t VALUES (72), (112), (126), (145), (104), (242), (313), (168), (108);

SELECT quantileTiming(response_time) FROM t;
Response
┌─quantileTiming(response_time)─┐
│                           126 │
└───────────────────────────────┘
관련 항목
마지막 수정일 2026년 6월 10일