quantileTiming
Introduzido em: v1.1.0
Com a precisão especificada, calcula o quantil de uma sequência de dados numéricos.
O resultado é determinístico (não depende da ordem de processamento da consulta). A função é otimizada para trabalhar com sequências que descrevem distribuições, como tempos de carregamento de páginas da web ou tempos de resposta do backend.
Ao usar várias funções quantile* com níveis diferentes em uma consulta, os estados internos não são combinados (ou seja, a consulta é executada com menos eficiência do que poderia).
Nesse caso, use a função quantiles.
Precisão
O cálculo é preciso se:
- O número total de valores não exceder 5670.
- O número total de valores exceder 5670, mas o tempo de carregamento da página for inferior a 1024 ms.
Caso contrário, o resultado do cálculo é arredondado para o múltiplo de 16 ms mais próximo.
Sintaxe
quantileTiming(level)(expr)Aliases: medianTiming
Parâmetros
level— Opcional. Nível do quantil. Número de ponto flutuante constante de 0 a 1. Recomendamos usar um valor delevelno intervalo[0.01, 0.99]. Valor padrão: 0.5. Emlevel=0.5, a função calcula a mediana.Float*
Argumentos
expr— Expressão sobre os valores da coluna que resulta em tipos de dados numéricos,DateouDateTime. Se valores negativos forem passados para a função, o comportamento é indefinido. Se o valor for maior que 30.000 (tempo de carregamento de página superior a 30 segundos), ele será considerado como 30.000.(U)Int*ouFloat*ouDateouDateTime
Valor retornado
Quantil do nível especificado. Se nenhum valor for passado para a função (ao usar quantileTimingIf), será retornado NaN. O objetivo disso é diferenciar esses casos daqueles que resultam em zero. Float32
Exemplos
Calculando o quantil de tempo
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;┌─quantileTiming(response_time)─┐
│ 126 │
└───────────────────────────────┘Veja também