percentileFungsi agregat

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Menampilkan nilai persentil yang tepat dari expr pada percentage yang ditentukan dalam sebuah grup.

Sintaks

percentile ( [ALL | DISTINCT] expr, percentage [, frequency] ) [FILTER ( WHERE cond ) ]

Fungsi ini juga dapat dipanggil sebagai fungsi jendela dengan menggunakan klausa OVER.

Argumen

  • expr: Ekspresi yang dievaluasi menjadi nilai numerik.
  • percentage: Ekspresi numerik antara 0 dan 1 atau ARRAY sekumpulan ekspresi numerik, masing-masing antara 0 dan 1.
  • frequency: Angka integral opsional literal lebih besar dari 0.
  • cond: Ekspresi boolean opsional yang memfilter baris yang digunakan untuk agregasi.

Pengembalian

DOUBLE jika percentage numerik, atau ARRAY<DOUBLE> jika percentage adalah ARRAY.

Frekuensi menjelaskan berapa kali expr harus dihitung. Frekuensi 10 untuk nilai tertentu sama dengan nilai yang muncul 10 kali di jendela pada frekuensi 1. Frekuensi defaultnya adalah 1.

Jika DISTINCT ditentukan, fungsi hanya beroperasi pada satu set nilai expr yang unik.

Azure Databricks menaikkan DATATYPE_MISMATCH jika percentage tidak antara 0 dan 1, atau bukan konstanta.

Azure Databricks meningkatkan NEGATIVE_VALUES_IN_FREQUENCY_EXPRESSION jika frequency negatif.

Kondisi kesalahan umum

Contoh

> SELECT percentile(col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 6.0

> SELECT percentile(DISTINCT col, 0.3) FROM VALUES (0), (10), (10) AS tab(col);
 3.0

> SELECT percentile(col, 0.3, freq) FROM VALUES (0, 1), (10, 2) AS tab(col, freq);
 6.0

> SELECT percentile(col, array(0.25, 0.75)) FROM VALUES (0), (10) AS tab(col);
 [2.5,7.5]

> SELECT percentile(col, 1.5) FROM VALUES (1), (2) AS tab(col);
  Error: DATATYPE_MISMATCH.VALUE_OUT_OF_RANGE