Delen via


histogram_numeric statistische functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 10,2 en hoger

Berekent een histogram voor expr het gebruik van numBins bins.

Syntaxis

histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]

Argumenten

  • expr: Een numerieke, TIMESTAMP, of DATEINTERVAL expressie waarmee de functie het histogram verbruikt en berekent.
  • numBins: Een INTEGER letterlijke waarde die groter moet zijn dan 1, waarbij het aantal bins voor de histogramberekening wordt opgegeven.
  • cond: Een optionele BOOLEAN expressie waarmee de rijen voor aggregatie worden gefilterd.

Retouren

De retourwaarde is een ARRAY van STRUCTS de velden x en y vertegenwoordigt de middelpunten van de opslaglocaties van het histogram. Het type x is hetzelfde als het type expr, en het type y is DOUBLE. Het verhogen van de waarde van numBins verfijnt de benadering van het histogram, waardoor het nauwkeuriger wordt. Het kan echter artefacten introduceren rond uitbijters. Normaal gesproken zijn 20-40 bins effectief voor histogrammen, hoewel scheefgetrokken of kleinere gegevenssets mogelijk meer bins vereisen. Houd er rekening mee dat met deze functie een histogram met niet-uniforme bin-breedtes wordt gemaakt. Het biedt geen garanties in termen van de gemiddelde kwadratische fout van het histogram, maar in de praktijk is het vergelijkbaar met de histogrammen die worden geproduceerd door andere computingpakketten.

Als u DISTINCT opgeeft, werkt de functie alleen op een unieke set van exprvalues.

Voorbeelden

> 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}]