Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:
Databricks SQL
Databricks Runtime 10.2 ke atas
Menghitung histogram pada expr menggunakan numBins bin.
Sintaks
histogram_numeric ( [ALL | DISTINCT ] expr, numBins ) [ FILTER ( WHERE cond ) ]
Argumen
-
expr: Ekspresi numerik,TIMESTAMP,DATE, atauINTERVALyang dikonsumsi oleh fungsi untuk menghitung histogram. -
numBins: LiteralINTEGERyang harus lebih besar dari 1, menentukan jumlah bin untuk komputasi histogram. -
cond: Ekspresi opsionalBOOLEANyang memfilter baris untuk agregasi.
Pengembalian
Nilai yang dikembalikan adalah ARRAY dari STRUCTS dengan bidang x dan y yang mewakili pusat bin histogram. Jenis x sama dengan jenis expr, dan jenis y adalah DOUBLE.
Meningkatkan nilai numBins menyempurnakan perkiraan histogram, membuatnya lebih halus. Namun, itu dapat memperkenalkan artefak di sekitar outlier.
Biasanya, 20-40 bin efektif untuk histogram, meskipun himpunan data condong atau lebih kecil mungkin memerlukan lebih banyak bin. Perhatikan bahwa fungsi ini membuat histogram dengan lebar bin non-seragam.
Ini tidak menawarkan jaminan dalam hal kesalahan rata-kuadrat histogram, tetapi dalam praktiknya sebanding dengan histogram yang diproduksi oleh paket komputasi lainnya.
Menentukan DISTINCT membuat fungsi hanya beroperasi pada sekumpulan nilai expr yang unik.
Contoh
> 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}]