Menghitung Persentil membantu Anda memberi peringkat data untuk analisis serta menghitung median untuk sekumpulan nilai. Berikut cara menghitung persentil di PostgreSQL menggunakan percentile_cont fungsi jendela. Kita juga akan melihat cara menghitung persentil ke-50, persentil ke-90, persentil ke-95 dan ke-n di PostgreSQL, karena mereka umumnya digunakan dalam analisis data.
Cara Menghitung Persentil di PostgreSQL
Kami akan menghitung persentil di PostgreSQL menggunakan percentile_cont fungsi jendela
Katakanlah Anda memiliki tabel berikut penjualan(tanggal_pesanan,jumlah) dan Anda ingin menghitung persentil ke-50.
postgres=# create table sales(order_date date,sale int); postgres=# insert into sales values('2020-04-01',210), ('2020-04-02',125),('2020-04-03',150),('2020-04-04',230), ('2020-04-05',200),('2020-04-10',220),('2020-04-06',25), ('2020-04-07',215),('2020-04-08',300),('2020-04-09',250); postgres=# select * from sales; order_date | sale ------------+------ 2020-04-01 | 210 2020-04-02 | 125 2020-04-03 | 150 2020-04-04 | 230 2020-04-05 | 200 2020-04-10 | 220 2020-04-06 | 25 2020-04-07 | 215 2020-04-08 | 300 2020-04-09 | 250
Bonus Baca :Cara Mengisi Tanggal Hilang di PostgreSQL
Berikut kueri untuk menghitung persentil ke-50 di PostgreSQL. Anda dapat menggunakan kueri yang sama untuk menghitung median di PostgreSQL.
postgres=# SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 212.5
Dalam kueri di atas, kami menggunakan percentile_cont fungsi jendela yang memungkinkan Anda menentukan persentil apa (mis. 0,5 yaitu persentil ke-50) yang ingin Anda hitung. Kemudian kita juga menggunakan klausa WITHIN GROUP untuk menghitung persentil dalam grup penjualan nilai-nilai. Kami juga menggunakan klausa ORDER BY untuk mengurutkan penjualan nilai sebelum kita menghitung persentil di PostgreSQL.
Saat Anda menggunakan percentile_cont fungsi window, PostgreSQL akan menginterpolasi nilai median sebagai rata-rata dari 2 nilai tengah (210, 215), jika ada 2 nilai tengah. Itu sebabnya ia mengembalikan 212,5
Bonus Baca :Cara Menghitung Moving Average di PostgreSQL
Saat Anda dapat menghitung persentil di PostgreSQL, jika Anda tidak ingin PostgreSQL diinterpolasi tetapi hanya mengembalikan nilai terdekat, gunakan percentile_disc fungsi jendela sebagai gantinya. Ini contohnya
postgres=# SELECT PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 210
Dalam hal ini, ia akan mengembalikan salah satu nilai tengah, jika ada 2 nilai tengah.
Bonus Baca :Cara Mengimpor File CSV ke PostgreSQL
Cara Menghitung Persentil ke-90 di PostgreSQL
Demikian pula, Anda dapat menghitung persentil ke-90 di PostgreSQL menggunakan percentile_cont. Kami mengubah 0,5 menjadi 0,9 di persentil_cont fungsi
postgres=# SELECT PERCENTILE_CONT(0.9) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 255
Anda juga dapat menghitung persentil ke-90 di PostgreSQL menggunakan percentile_disc
postgres=# SELECT PERCENTILE_DISC(0.9) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 250
Cara Menghitung Persentil ke-95 di PostgreSQL
Demikian pula, Anda dapat menghitung persentil ke-95 di PostgreSQL, menggunakan percentile_cont
postgres=# SELECT PERCENTILE_CONT(0.95) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_cont ----------------- 277.5
Anda juga dapat menghitung persentil ke-95 di PostgreSQL menggunakan percentile_disc
postgres=# SELECT PERCENTILE_DISC(0.95) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 300
Cara Menghitung Persentil ke-n di PostgreSQL
Demikian pula, Anda dapat menghitung persentil ke-n di PostgreSQL menggunakan percentile_cont. Kami pada dasarnya menyediakan n/100 dalam percentile_cont fungsi
postgres=# SELECT PERCENTILE_CONT(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;
Anda juga dapat menghitung persentil ke-90 di PostgreSQL menggunakan percentile_disc
postgres=# SELECT PERCENTILE_DISC(n/100) WITHIN GROUP(ORDER BY sale) FROM sales;
Setelah menghitung persentil di PostgreSQL, Anda dapat menggunakan Alat Pelaporan PostgreSQL untuk memplot nilai persentil bersama dengan nilai penjualan pada diagram garis untuk menganalisis perbedaan dan juga melakukan penetapan tujuan. Untuk itu kita akan menggabungkan nilai persentil ke-50 yang dihitung dengan penjualan asli tabel seperti di bawah ini
postgres=# select * from sales, (SELECT PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales) temp order by order_date; order_date | sale | percentile_cont ------------+------+----------------- 2020-04-01 | 210 | 212.5 2020-04-02 | 125 | 212.5 2020-04-03 | 150 | 212.5 2020-04-04 | 230 | 212.5 2020-04-05 | 200 | 212.5 2020-04-06 | 25 | 212.5 2020-04-07 | 215 | 212.5 2020-04-08 | 300 | 212.5 2020-04-09 | 250 | 212.5 2020-04-10 | 220 | 212.5
Berikut adalah diagram garis yang menunjukkan penjualan harian beserta persentil, diplot menggunakan Ubiq
Jika Anda ingin membuat grafik, dasbor &laporan dari database PostgreSQL, Anda dapat mencoba Ubiq. Kami menawarkan uji coba gratis selama 14 hari.