Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:
Databricks SQL
Databricks Runtime 10.2 och senare
Beräknar ett histogram för expr användning av numBins lagerplatser.
Syntax
histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]
Argument
-
expr: Ett numeriskt,TIMESTAMP,DATEellerINTERVALuttryck som funktionen använder och beräknar histogrammet på. -
numBins: EnINTEGERliteral som måste vara större än 1 och som anger antalet lagerplatser för histogramberäkningen. -
cond: Ett valfrittBOOLEANuttryck som filtrerar raderna för aggregering.
Returer
Returvärdet är ett ARRAY av STRUCTS med fält x och y som representerar mittpunkterna för histogrammets kategorier. Typen av x är samma som typen av expr, och typen av y är DOUBLE.
Att öka värdet för numBins förfinar histogrammets uppskattning, vilket gör det finare kornigt. Det kan dock introducera artefakter kring extremvärden.
Vanligtvis är 20–40 lagerplatser effektiva för histogram, men skeva eller mindre datamängder kan kräva fler lagerplatser. Observera att den här funktionen skapar ett histogram med icke-enhetliga intervallbredder.
Det ger inga garantier när det gäller histogrammets medelvärde-kvadratfel, men är i praktiken jämförbart med de histogram som produceras av andra databehandlingspaket.
Om du anger DISTINCT fungerar funktionen endast på en unik uppsättning expr värden.
Exempel
> 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}]