Aracılığıyla paylaş


histogram_numeric toplama işlevi

Şunun için geçerlidir:işaretli evet Databricks SQL işaretli evet Databricks Runtime 10.2 ve üzeri

expr bölmeleri kullanarak numBins üzerinde bir histogram hesaplar.

Söz dizimi

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

Argümanlar

  • expr: İşlevin tüketip histogramını hesapladığı sayısal TIMESTAMP, DATE veya INTERVAL ifadesi.
  • numBins: Histogram hesaplaması için bölme sayısını belirten ve 1'den büyük olması gereken bir INTEGER sabit değer.
  • cond: Toplama için satırları filtreleyen isteğe bağlı BOOLEAN bir ifade.

İadeler

Dönüş değeri, alanları ARRAY ve STRUCTS olan ve histogramın bölmelerinin merkezlerini temsil eden bir xy değeridir. x türü, expr türüyle aynıdır ve y türü ise DOUBLE şeklindedir. değerinin numBins artırılması histogram yaklaşık değerini iyileştirerek daha ayrıntılı hale getirir. Ancak, aykırı değerlerin çevresinde artefaktlara sebep olabilir. Genellikle 20-40 bölme histogramlar için etkilidir, ancak çarpık veya daha küçük veri kümeleri daha fazla bölme gerektirebilir. Bu işlevin tekdüzen olmayan bölme genişliklerine sahip bir histogram oluşturduğunu unutmayın. Histogramın ortalama kare hatası açısından hiçbir garanti vermemektedir, ancak pratikte diğer bilgi işlem paketleri tarafından üretilen histogramlarla karşılaştırılabilir.

DISTINCT belirtilmesi işlevin yalnızca benzersiz bir expr değer kümesinde çalışmasını sağlar.

Örnekler

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