Fungsi MySQL PERCENT_RANK

Fungsi MySQL PERCENT_RANK

Fungsi MySQL PERCENT_RANK

Rangkuman : dalam tutorial Fungsi MySQL PERCENT_RANK, Anda akan belajar bagaimana menggunakan PERCENT_RANK()fungsi MySQL untuk menghitung peringkat persentil dari sebuah baris dalam sebuah partisi atau kumpulan hasil.

Ini PERCENT_RANK()adalah fungsi Windows yang menghitung peringkat persentil baris dalam partisi atau kumpulan hasil.

Berikut ini adalah sintaks dari PERCENT_RANK()fungsi tersebut:

PERCENT_RANK()

OVER (

PARTITION BY expr,…

ORDER BY expr [ASC|DESC],…

)

Bahasa kode: SQL (Structured Query Language) ( sql )

The PERCENT_RANK()mengembalikan fungsi nomor yang berkisar dari nol sampai satu.

Untuk baris tertentu, PERCENT_RANK()menghitung peringkat baris tersebut dikurangi satu, dibagi 1 kurang dari jumlah baris di partisi yang dievaluasi atau kumpulan hasil kueri:

(rank – 1) / (total_rows – 1)

Bahasa kode: SQL (Structured Query Language) ( sql )

Dalam rumus ini, rankadalah peringkat dari baris yang ditentukan dan total_rowsmerupakan jumlah baris yang dievaluasi.

The PERCENT_RANK()Fungsi selalu kembali nol untuk baris pertama di partisi atau hasil set. Nilai kolom yang berulang akan menerima nilai yang sama PERCENT_RANK().

Mirip dengan fungsi Windows lainnya, PARTITION BYklausa mendistribusikan baris ke dalam partisi dan ORDER BYklausa menentukan urutan logis baris di setiap partisi. The PERCENT_RANK()Fungsi dihitung untuk setiap partisi memerintahkan secara independen.

Keduanya PARTITION BYdan ORDER BYklausa bersifat opsional. Namun, PERCENT_RANK()ini adalah fungsi yang peka urutan, oleh karena itu, Anda harus selalu menggunakan ORDER BYklausa tersebut.

PERCENT_RANK()Contoh fungsi MySQL

Mari kita membuat tabel baru bernama productLineSalesdidasarkan pada orders, orderDetailsdan productstabel dari database contoh :

CREATE TABLE productLineSales

SELECT

productLine,

YEAR(orderDate) orderYear,

quantityOrdered * priceEach orderValue

FROM

orderDetails

INNER JOIN

orders USING (orderNumber)

INNER JOIN

products USING (productCode)

GROUP BY

productLine ,

YEAR(orderDate);

Bahasa kode: SQL (Structured Query Language) ( sql )

The productLineSalesmeja menyimpan ringkasan data penjualan termasuk lini produk, tahun ketertiban, dan nilai pesanan.

Menggunakan MySQL di PERCENT_RANK()atas kumpulan hasil kueri

Kueri berikut menemukan peringkat persentil dari setiap lini produk menurut nilai pesanan:

Baca Juga  Belajar Microsoft Excel: Lookup Gambar Dengan Index Match

WITH t AS (

SELECT

productLine,

SUM(orderValue) orderValue

FROM

productLineSales

GROUP BY

productLine

)

SELECT

productLine,

orderValue,

ROUND(

PERCENT_RANK() OVER (

ORDER BY orderValue

)

,2) percentile_rank

FROM

t;

Bahasa kode: SQL (Structured Query Language) ( sql )

Dalam contoh ini:

  • Pertama, kami menggunakan ekspresi tabel umum untuk meringkas nilai pesanan berdasarkan lini produk.
  • Kedua, kami menggunakan¬†PERCENT_RANK()untuk menghitung peringkat persentil dari nilai pesanan setiap produk.¬†Selain itu, kami menggunakan¬†ROUND()fungsi untuk membulatkan nilai menjadi 2 desimal untuk representasi yang lebih baik.

Inilah hasilnya:

Fungsi MySQL PERCENT_RANK

Berikut beberapa analisis dari keluarannya:

  • Nilai pesanan¬†Trainstidak lebih baik dari lini produk lainnya, yang diwakili dengan nol.
  • ¬†Vintage Cars¬†berkinerja lebih baik dari 50% produk lainnya.
  • ¬†Classic Cars¬†berkinerja lebih baik daripada lini produk lain sehingga peringkat persennya adalah 1 atau 100%

Menggunakan MySQL PERCENT_RANK()melalui partisi

Pernyataan berikut mengembalikan peringkat persentil lini produk menurut nilai pesanan di setiap tahun:

SELECT

productLine,

orderYear,

orderValue,

ROUND(

PERCENT_RANK()

OVER (

PARTITION BY orderYear

ORDER BY orderValue

),2) percentile_rank

FROM

productLineSales;

Bahasa kode: SQL (Structured Query Language) ( sql )

Inilah hasilnya:

Fungsi MySQL PERCENT_RANK di atas contoh partisi

Dalam contoh ini, kami membagi nilai pesanan lini produk dengan tahun pesanan. The PERCENT_RANK()kemudian diterapkan untuk setiap partisi.

Misalnya, pada tahun 2013 Vintage Cars berkinerja lebih baik dari 50% lini produk lain sementara pada tahun 2014, Kapal berkinerja lebih baik daripada 50% produk lainnya.

Dalam tutorial ini, Anda telah mempelajari cara menggunakan PERCENT_RANK()fungsi MySQL untuk menghitung peringkat persentil dari sebuah baris dalam sebuah partisi atau kumpulan hasil.

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Need Help? Chat with us