Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hitung desil dari frekuensi di MySQL

Terkadang Anda mungkin ingin menghitung desil dari frekuensi atau hitungan di MySQL berdasarkan. Misalnya, untuk menentukan peringkat pelanggan berdasarkan jumlah pembelian atau pesanan, bukan berdasarkan total penjualan

Hitung Desil dari Frekuensi

Belum ada fungsi untuk itu. Ini kueri yang sudah jadi untuk melakukannya.

Misalnya, Anda memiliki tabel pesanan yang berisi semua pesanan produk untuk setiap pengguna. Anda ingin menghitung desil dari frekuensi pesanan.

order
+------+--------------+-------------+
|  user_id  |   product  |   sales  |
+-----------+------------+----------+
|     1     |     Soap   |    10    |
|     4     |   Perfume  |   100    |
|     1     |   Noodles  |   20     |
|     4     |     Soap   |   10     |
|     1     |    Glue    |   20     |
|     3     |     Deo    |   200    |
+-----------+------------+----------+
deciles
+-----------+----------+---------+---------------+
|  user_id  |   total  |  rank   |     decile    |
+-----------+----------+---------+---------------+
|     1     |     3    |    1    |      10       |
|     4     |     2    |    2    |       7       |
|     3     |     1    |    3    |       3       |
+-----------+----------+---------+---------------+

Berikut kueri yang dapat Anda gunakan untuk menghitung desil dari frekuensi atau hitungan di MySQL. Ganti saja kolom – user_id, sales dan table – order. Ini menghitung jumlah pesanan untuk setiap pengguna. Kemudian peringkat mereka pada jumlah pesanan. Terakhir, ia menghitung desil menggunakan peringkat.

select user_id,total,rank,round(10*(cnt-rank+1)/cnt,0) as decile from   
(SELECT  user_id,total,@curRank := @curRank + 1 AS rank
FROM      (select user_id,count(sales) as total from `order` group by user_id)
p, (SELECT @curRank := 0) r
ORDER BY  total desc ) as dt,(select count(distinct user_id) as cnt from
`order`) as ct

Jika Anda sudah memiliki jumlah pesanan untuk setiap pengguna dalam tabel dan ingin langsung menggunakan tabel untuk menghitung desil dari frekuensi atau hitungan, berikut adalah kuerinya

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan tampilan MySQL

  2. Php - Instalasi PHP Anda tampaknya kehilangan ekstensi MySQL yang diperlukan oleh WordPress

  3. Android JDBC tidak berfungsi:ClassNotFoundException pada driver

  4. Apa perbedaan antara SQL dan MySQL?

  5. Bagaimana menghubungkan ke database menggunakan klien MySQL Workbench