Menghitung median membantu Anda menemukan nilai tengah dalam data dan menghindari gangguan karena nilai ekstrem. Berikut cara menghitung median di PostgreSQL menggunakan percentile_cont karena tidak ada fungsi untuk menghitung median di PostgreSQL
Cara Menghitung Median di PostgreSQL
Kami akan menghitung median di PostgreSQL dengan menghitung nilai persentil ke-50, karena tidak ada fungsi bawaan untuk menghitung median di PostgreSQL.
Katakanlah Anda memiliki tabel berikut penjualan(tanggal_pesanan,jumlah)
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 Menghitung Moving Average di PostgreSQL
Berikut kueri untuk mencari median, yaitu menghitung persentil ke-50 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 yang memungkinkan Anda untuk menentukan persentil apa (misalnya 0,5 yaitu persentil ke-50) yang ingin Anda hitung. Kemudian kita juga menggunakan klausa WITHIN GROUP untuk memberitahu PostgreSQL untuk menghitung persentil dalam grup penjualan nilai-nilai. Kami juga menggunakan klausa ORDER BY untuk memberi tahu PostgreSQL untuk mengurutkan penjualan nilai sebelum menghitung median.
Saat Anda menggunakan percentile_cont , PostgreSQL akan menginterpolasi nilai median sebagai rata-rata dari 2 nilai tengah (210.215).
Bonus Baca :Cara Mengimpor File CSV di tabel PostgreSQL
Jika Anda tidak ingin PostgreSQL melakukan interpolasi tetapi hanya mengembalikan nilai terdekat, gunakan percentile_disc sebagai gantinya. Ini contohnya
postgres=# SELECT PERCENTILE_DISC(0.5) WITHIN GROUP(ORDER BY sale) FROM sales; percentile_disc ----------------- 210
Jika Anda ingin menghitung median di PostgreSQL untuk setiap grup, gunakan klausa GROUP BY seperti yang ditunjukkan di bawah ini. Katakanlah penjualan Anda tabel juga berisi produk kolom dengan nama produk. Dalam hal ini, Anda dapat menghitung median untuk setiap produk menggunakan kueri berikut.
postgres=# SELECT PRODUCT, PERCENTILE_CONT(0.5) WITHIN GROUP(ORDER BY sale) FROM sales GROUP BY PRODUCT;
Bonus Baca :Cara Menghitung Pertumbuhan Bulan ke Bulan di PostgreSQL
Setelah menghitung median di PostgreSQL, Anda dapat menggunakan Alat Pelaporan PostgreSQL untuk memplot nilai median bersama dengan nilai penjualan pada diagram garis untuk menganalisis perbedaannya. Untuk itu kita akan menggabungkan nilai median 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 diagram garis yang menunjukkan penjualan harian beserta median, 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.