Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tính toán decile trong MySQL dựa trên tổng số

Bạn có thể tính toán decile trong MySQL để xác định những khách hàng tốt nhất. Về cơ bản, bạn xếp hạng và nhóm khách hàng thành 10 nhóm dựa trên tổng doanh số bán hàng. Dựa trên kết quả, bạn có thể đưa ra các sáng kiến ​​giữ chân có liên quan và tập trung hơn. Đây là một truy vấn được tạo sẵn để thực hiện.

Tính toán Decile trong MySQL

Ví dụ:Bạn có một bảng đơn đặt hàng trong đó chứa tất cả các đơn đặt hàng sản phẩm cho mỗi người dùng. Bạn muốn tính toán decile trong MySQL.

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

Đây là một truy vấn bạn có thể sử dụng để tính toán số thập phân trong MySQL dựa trên tổng số. Chỉ cần thay thế các cột - user_id, sales và table - order. Nó tổng hợp tổng doanh số cho mỗi người dùng. Sau đó, nó xếp hạng chúng trên tổng doanh số bán hàng. Cuối cùng, nó tính toán decile bằng cách sử dụng xếp hạng.

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,sum(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

Nếu bạn đã có tổng doanh số bán hàng cho mỗi người dùng trong bảng và muốn trực tiếp sử dụng bảng để tính toán decile, thì đây là một truy vấn

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Học MySQL / MariaDB cho người mới bắt đầu - Phần 1

  2. Câu hỏi và câu trả lời phỏng vấn MySql phổ biến cho người mới hơn + có kinh nghiệm

  3. Độ chậm được tìm thấy khi hình ảnh cơ sở 64 chọn và mã hóa từ cơ sở dữ liệu

  4. MySQL - Kích hoạt để cập nhật cùng một bảng sau khi chèn

  5. ER_NOT_SUPPORTED_AUTH_MODE - Máy chủ MySQL