Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Fonction d’agrégation
Appliquer sur :
Databricks SQL
Databricks Runtime 10.2 et versions ultérieures.
Calcule un histogramme sur expr en utilisant numBins compartiments.
Syntaxe
histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]
Les arguments
-
expr: expression numérique,TIMESTAMP,DATEouINTERVALsur laquelle la fonction consomme et calcule l’histogramme. -
numBins: littéralINTEGERqui doit être supérieur à 1 et qui spécifie le nombre de compartiments pour le calcul de l’histogramme. -
cond: expression facultativeBOOLEANqui filtre les lignes pour l’agrégation.
Retours
La valeur de retour est un ARRAY de STRUCTS avec des champs x et y qui représentent les centres des bacs de l'histogramme. Le type de x est le même que celui de expr, et le type de y est DOUBLE.
L’augmentation de la valeur de numBins affine l’approximation de l’histogramme, ce qui la rend plus précise. Toutefois, cela peut introduire des artefacts autour des valeurs hors norme.
En général, 20 à 40 compartiments s’avèrent efficaces pour les histogrammes, mais des jeux de données asymétriques ou plus petits peuvent nécessiter davantage de compartiments. Notez que cette fonction crée un histogramme avec des largeurs de compartiment non uniformes.
Elle n’offre aucune garantie en termes d’erreur quadratique moyenne de l’histogramme, mais est en pratique comparable aux histogrammes produits par d’autres packages informatiques.
Si vous spécifiez DISTINCT, la fonction ne s’applique qu’à un ensemble unique de valeurs expr.
Exemples
> 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}]