Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

quantileDeterministic

quantileDeterministic

Introduzido em: v1.1.0

Calcula um quantil aproximado de uma sequência de dados numéricos.

Esta função aplica amostragem por reservatório com um reservatório de tamanho até 8192 e um algoritmo de amostragem determinístico. O resultado é determinístico. Para obter um quantil exato, use a função quantileExact.

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.

Sintaxe

quantileDeterministic(level)(expr, determinator)

Aliases: medianDeterministic

Parâmetros

  • level — Opcional. Nível do quantil. Número de ponto flutuante constante de 0 a 1. Recomendamos usar um valor de level no intervalo [0.01, 0.99]. Valor padrão: 0.5. Em level=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, Date ou DateTime. (U)Int* ou Int128 ou UInt128 ou Int256 ou UInt256 ou Float* ou Date ou DateTime
  • determinator — Número cujo hash é usado no lugar de um gerador de números aleatórios no algoritmo de amostragem por reservatório para tornar o resultado da amostragem determinístico. Como determinador, você pode usar qualquer número positivo determinístico, por exemplo, um ID de usuário ou um ID de evento. Se o mesmo valor de determinador ocorrer com muita frequência, a função funcionará incorretamente. UInt*

Valor retornado

Retorna um quantil aproximado do nível especificado. Float64 ou Date ou DateTime

Exemplos

Calculando quantil determinístico

CREATE TABLE t (val UInt32) ENGINE = Memory;
INSERT INTO t VALUES (1), (1), (2), (3);

SELECT quantileDeterministic(val, 1) FROM t;
┌─quantileDeterministic(val, 1)─┐
│                           1.5 │
└───────────────────────────────┘

Veja também

Navigation