Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:
Databricks SQL
Databricks Runtime 10.2 e versioni successive
Calcola un istogramma su expr utilizzando numBins suddivisioni.
Sintassi
histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]
Argomenti
-
expr: espressione numerica,TIMESTAMP,DATE, oINTERVALsu cui la funzione utilizza e calcola l'istogramma. -
numBins: valoreINTEGERletterale che deve essere maggiore di 1, specificando il numero di contenitori per il calcolo dell'istogramma. -
cond: espressione facoltativaBOOLEANche filtra le righe per l'aggregazione.
Valori restituiti
Il valore restituito è un oggetto ARRAY di STRUCTS con campi x e y rappresentanti i centri dei bin dell'istogramma. Il tipo di x è uguale al tipo di expr e il tipo di y è DOUBLE.
Aumentando il valore di numBins affina l'approssimazione dell'istogramma, rendendolo più granulare. Tuttavia, può introdurre artefatti intorno agli outlier.
In genere, 20-40 bin sono efficaci per gli istogrammi, anche se set di dati asimmetrici o più piccoli potrebbero richiedere più bin. Si noti che questa funzione crea un istogramma con larghezze bin non uniformi.
Non offre garanzie in termini di errore medio quadrato dell'istogramma, ma in pratica è paragonabile agli istogrammi prodotti da altri pacchetti di calcolo.
DISTINCT Se si specifica, la funzione viene eseguita solo su un set univoco di expr valori.
Esempi
> 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}]