Mysql
 sql >> база данни >  >> RDS >> Mysql

Изчислете децил в MySQL въз основа на суми

Можете да изчислите децил в MySQL, за да идентифицирате най-добрите клиенти. По принцип вие класирате и групирате клиентите в 10 групи въз основа на общите продажби. Въз основа на резултата можете да излезете с по-фокусирани, подходящи инициативи за задържане. Ето готова заявка, за да го направите.

Изчислете децил в MySQL

Напр. имате таблина поръчка който съдържа всички поръчки на продукти за всеки потребител. Искате да изчислите децил в MySQL.

<предварителна>поръчка+-----------+-----------+----------+| потребителски_идентификатор | продукт | продажби |+-----------+------------+----------+| 1 | Сапун | 10 || 4 | Парфюм | 100 || 1 | Юфка | 20 || 3 | Део | 200 |+-----------+------------+----------+
децили+-----------+---------+--------+------------ --+| потребителски_идентификатор | общо | ранг | децил |+-----------+---------+--------+-------------- -+| 1 | 30 | 3 | 3 || 4 | 100 | 2 | 7 || 3 | 200 | 1 | 10 |+-----------+---------+--------+-------------- -+

Ето заявка, която можете да използвате за изчисляване на децил в MySQL въз основа на суми. Просто заменете колоните – user_id, sales и table – поръчка. Той обобщава общите продажби за всеки потребител. След това ги класира по общите продажби. И накрая, той изчислява децил, използвайки ранг.

изберете user_id  ,total,rank,round(10*(cnt-rank+1)/cnt,0) като децил от (SELECT user_id,total,@curRank :=@curRank + 1 AS rankFROM (изберете user_id  ,sum(продажби  ) като общо от `поръчка  ` група по user_id  )p, (SELECT @curRank :=0) rORDER BY total desc ) като dt,(изберете брой(отличен user_id)  ) като cnt от`поръчка  `) като ct

Ако вече имате общи продажби за всеки потребител в таблицата и искате директно да използвате таблицата за изчисляване на децил, ето заявка

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да стартирам Spring-Boot приложение, без да зависи от базата данни?

  2. Как да получите годината от колона Datetime в MySQL

  3. Най-добрият начин за хостване на MySQL в Azure Cloud

  4. mysql_fetch_row() срещу mysql_fetch_assoc() срещу mysql_fetch_array()

  5. Колко голяма може да стане една MySQL база данни, преди производителността да започне да се влошава