Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Função de agregação
Aplica-se a:
Databricks SQL
Databricks Runtime 10.2 e superior
Calcula um histograma na expr usando compartimentos numBins.
Sintaxe
histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]
Argumentos
-
expr: uma expressão numérica,TIMESTAMP,DATEouINTERVALque é processada pela função para gerar o histograma. -
numBins: um valor literalINTEGERque deve ser superior a 1, indicando a quantidade de compartimentos para o cálculo do histograma. -
cond: uma expressãoBOOLEANopcional que serve para filtrar as linhas que serão agregadas.
Devoluções
O valor retornado é um ARRAY de STRUCTS com os campos x e y representando os centros dos intervalos do histograma. O tipo de x é o mesmo que o tipo de expr, e o tipo de y é DOUBLE.
Aumentar o valor de numBins deixa a aproximação do histograma mais refinada e detalhada. No entanto, isso pode gerar artefatos perto de valores atípicos.
Normalmente, de 20 a 40 compartimentos são suficientes para a maioria dos histogramas, mas conjuntos de dados assimétricos ou menores podem exigir um número maior de compartimentos. Vale ressaltar que esta função cria um histograma com larguras de compartimento não uniformes.
Ela não garante uma precisão em termos de erro quadrático médio do histograma, mas, na prática, os resultados são comparáveis aos histogramas gerados por outros softwares de computação.
Definir DISTINCT faz com que a função seja aplicada somente a um conjunto único de valores expr.
Exemplos
> SELECT histogram_numeric(col, 5)
FROM VALUES (0), (1), (2), (10) AS tab(col);
[{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (0L), (1L), (2L), (10L) AS tab(col);
[{"x":0,"y":1.0},{"x":1,"y":1.0},{"x":2,"y":1.0},{"x":10,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (0F), (1F), (2F), (10F) AS tab(col);
[{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (0D), (1D), (2D), (10D) AS tab(col);
[{"x":0.0,"y":1.0},{"x":1.0,"y":1.0},{"x":2.0,"y":1.0},{"x":10.0,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (INTERVAL 0 YEAR), (INTERVAL 1 YEAR), (INTERVAL 2 YEAR),
(INTERVAL 3 YEAR) AS tab(col);
[{"x":0-0,"y":1.0},{"x":1-0,"y":1.0},{"x":2-0,"y":1.0},{"x":3-0,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (INTERVAL 0 DAY), (INTERVAL 1 DAY), (INTERVAL 2 DAY),
(INTERVAL 3 DAY) AS tab(col);
[{"x":0 00:00:00.000000000,"y":1.0},{"x":1 00:00:00.000000000,"y":1.0},{"x":2 00:00:00.000000000,"y":1.0},{"x":3 00:00:00.000000000,"y":1.0}]
> SELECT histogram_numeric(col, 5)
FROM VALUES (TIMESTAMP '2020-01-01'), (TIMESTAMP'2020-02-01'),
(TIMESTAMP'2020-03-01'), (TIMESTAMP'2020-10-01') AS tab(col)
[{"x":2020-01-01 00:00:00,"y":1.0},{"x":2020-02-01 00:00:00,"y":1.0},{"x":2020-03-01 00:00:00,"y":1.0},{"x":2020-10-01 00:00:00,"y":1.0}]