Persentil SQL

Persentil Sql



Apa dua kata umum yang sangat erat kaitannya sehingga kamu mengira keduanya sama? Bagi kami pengembang database, itu adalah database SQL dan statistik.

Salah satu penghitungan statistik umum yang muncul bahkan dalam administrasi basis data adalah persentil.

Persentil adalah ukuran statistik yang memungkinkan kita membagi kumpulan data menjadi beberapa bagian segmen yang sama. Peran persentil adalah untuk memberikan wawasan tentang distribusi data yang merupakan cara kita memahami bagaimana nilai-nilai tersebar.







Dalam tutorial ini, kita akan mempelajari bagaimana kita menghitung persentil dalam SQL untuk membagi data menjadi berbagai segmen.



Tabel Contoh

Mari kita mulai dengan menyiapkan tabel dasar yang berisi contoh data untuk tujuan demonstrasi. Hal ini membantu kita mengilustrasikan perilaku berbagai metode penghitungan persentil dan keluaran yang dihasilkan.



Mari kita buat tabel bernama “produk” yang berisi informasi bahan makanan. Klausa “buat tabel” adalah sebagai berikut:





BUAT produk TABEL (

product_id INT KUNCI UTAMA AUTO_INCREMENT,

nama_produk VARCHAR( 255 ),

kategori VARCHAR( 255 ),

harga desimal( 10 , 2 ),

kuantitas INT,

tanggal_kedaluwarsa TANGGAL,

kode batang BESAR

);

Setelah kita membuat tabel, kita dapat melanjutkan dan menambahkan data sampel ke dalam tabel. Kita dapat menggunakan pernyataan “sisipkan” berikut:

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Topi Koki 25cm' ,
'toko roti' ,
24.67 ,
57 ,
'2023-09-09' ,
2854509564204 );

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Telur Puyuh - Kalengan' ,
'sepen' ,
17.99 ,
67 ,
'29-09-2023' ,
1708039594250 );

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Kopi - Telur Nog Capuccino' ,
'toko roti' ,
92.53 ,
10 ,
'22-09-2023' ,
8704051853058 );

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Pir - Berduri' ,
'toko roti' ,
65.29 ,
48 ,
'23-08-2023' ,
5174927442238 );

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Pasta - Rambut Malaikat' ,
'sepen' ,
48.38 ,
59 ,
'2023-08-05' ,
8008123704782 );

menyisipkan
ke dalam
produk (nama_produk,
kategori,
harga,
kuantitas,
tanggal habis tempo,
kode batang)
nilai ( 'Anggur - Prosecco Valdobiaddene' ,
'menghasilkan' ,
44.18 ,
3 ,
'2023-03-13' ,
6470981735653 );

Pada akhirnya, Anda harus memiliki tabel sebagai berikut:



Persentil SQL

Seperti yang bisa Anda tebak, cara menghitung persentil mungkin berbeda tergantung pada mesin database. Namun, metode yang paling umum adalah menggunakan fungsi PERCENTILE_DISC() dan PERCENTILE_CONT().

Fungsi-fungsi ini adalah bagian dari spesifikasi SQL Standar (2003). Oleh karena itu, ini pasti didukung oleh PostgreSQL dan Oracle.

PERCENTILE_CONT()

Mari kita mulai dengan fungsi PERCENTILE_CONT(). Fungsi ini memungkinkan kita menghitung nilai persentil sebagai pecahan dari kumpulan data.

Fungsi ini mengembalikan nilai interpolasi yang mungkin tidak tepat pada titik data tertentu dalam kumpulan data Anda.

Sintaks fungsinya adalah sebagai berikut:

PERCENTILE_CONT(persentil) DALAM KELOMPOK ( MEMESAN OLEH nama_kolom) OVER();

Fungsi ini menerima parameter berikut:

  • Persentil – Ini menentukan nilai persentil yang diinginkan (0,0 hingga 1,0).
  • nama_kolom – Ini menunjukkan kolom yang ingin kita hitung persentilnya.
  • OVER () – Ini mengatur fungsi jendela untuk menentukan seluruh kumpulan data.

Contoh cara menggunakan fungsi ini adalah sebagai berikut:

PILIH

PERCENTILE_CONT( 0,5 ) DI DALAM KELOMPOK ( MEMESAN BERDASARKAN harga) LEBIH DARI () SEBAGAI median

DARI

produk;

Catatan: Kueri yang diberikan hanya berfungsi di PostgreSQL karena MySQL tidak mendukung penggunaan DALAM GROUP.

Ini menghitung 50 th persentil dari data yang disediakan.

PERSENTILE_DISC()

Kita dapat menggunakan fungsi PERCENTILE_DISC() untuk menghitung nilai persentil sebagai nilai diskrit langsung dari kumpulan data.

Fungsi ini mengembalikan nilai yang sesuai dengan titik data sebenarnya.

Sintaks fungsinya adalah sebagai berikut (PostgreSQL):

PERCENTILE_DISC(persentil) DALAM KELOMPOK ( MEMESAN OLEH nama_kolom) OVER();

Contoh keluarannya adalah sebagai berikut:

PILIH

PERCENTILE_DISC( 0,25 ) DI DALAM KELOMPOK ( MEMESAN BERDASARKAN harga) LEBIH DARI () SEBAGAI persentil_25

DARI

produk;

Ini harus menghitung 25 th persentil data.

Kesimpulan

Tutorial ini membahas cara menggunakan berbagai fungsi untuk menghitung persentil dalam database SQL.