PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara Menghitung Median di PostgreSQL

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.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa mengatasi masalah otentikasi SCRAM Postgresql?

  2. Postgresql:Membuat skrip eksekusi psql dengan kata sandi

  3. Cara Menampilkan Nilai Null Saat Menjalankan Kueri di psql (PostgreSQL)

  4. hilangkan nilai array duplikat di postgres

  5. PostgreSQL - ambil baris yang memiliki nilai Max untuk sebuah kolom