APPROXIMATEPERCENTILE_ DISC fungsi - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

APPROXIMATEPERCENTILE_ DISC fungsi

APPROXIMATEPERCENTILE_ DISC adalah fungsi distribusi terbalik yang mengasumsikan model distribusi diskrit. Dibutuhkan nilai persentil dan spesifikasi semacam dan mengembalikan elemen dari set yang diberikan. Pendekatan memungkinkan fungsi berjalan lebih cepat, dengan kesalahan relatif rendah sekitar 0,5 persen.

Untuk nilai persentil tertentu, APPROXIMATE PERCENTILE _ DISC menggunakan algoritma ringkasan kuantil untuk memperkirakan persentil diskrit ekspresi dalam klausa BY. ORDER APPROXIMATEPERCENTILE_ DISC mengembalikan nilai dengan nilai distribusi kumulatif terkecil (sehubungan dengan spesifikasi jenis yang sama) yang lebih besar dari atau sama dengan persentil.

Sintaks

APPROXIMATE PERCENTILE_DISC ( percentile ) WITHIN GROUP (ORDER BY expr)

Argumen

persentil

Konstanta numerik antara 0 dan 1. Null diabaikan dalam perhitungan.

WITHINGROUP(ORDERDENGAN expr)

Klausul yang menentukan nilai numerik atau tanggal/waktu untuk mengurutkan dan menghitung persentil atas.

Pengembalian

Tipe data yang sama ORDER dengan ekspresi BY dalam WITHIN GROUP klausa.

Catatan penggunaan

Jika DISC pernyataan APPROXIMATE PERCENTILE _ menyertakan klausa GROUP BY, kumpulan hasil terbatas. Batas bervariasi berdasarkan jenis node dan jumlah node. Jika batas terlampaui, fungsi gagal dan mengembalikan kesalahan berikut.

GROUP BY limit for approximate percentile_disc exceeded.

Jika Anda perlu mengevaluasi lebih banyak grup daripada batas izin, pertimbangkan untuk menggunakannyaPERCENTILE_ CONT fungsi.

Contoh

Contoh berikut mengembalikan jumlah penjualan, total penjualan, dan nilai persentil kelima puluh untuk 10 tanggal teratas.

select top 10 date.caldate, count(totalprice), sum(totalprice), approximate percentile_disc(0.5) within group (order by totalprice) from listing join date on listing.dateid = date.dateid group by date.caldate order by 3 desc; caldate | count | sum | percentile_disc -----------+-------+------------+---------------- 2008-01-07 | 658 | 2081400.00 | 2020.00 2008-01-02 | 614 | 2064840.00 | 2178.00 2008-07-22 | 593 | 1994256.00 | 2214.00 2008-01-26 | 595 | 1993188.00 | 2272.00 2008-02-24 | 655 | 1975345.00 | 2070.00 2008-02-04 | 616 | 1972491.00 | 1995.00 2008-02-14 | 628 | 1971759.00 | 2184.00 2008-09-01 | 600 | 1944976.00 | 2100.00 2008-07-29 | 597 | 1944488.00 | 2106.00 2008-07-23 | 592 | 1943265.00 | 1974.00