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

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

Понякога може да искате да изчислите децил от честота или броя в MySQL въз основа на. Например, за класиране на клиентите въз основа на броя на покупките или поръчките вместо въз основа на общите продажби

Изчислете децил от честота

Все още няма функции за него. Ето готова заявка, за да го направите.

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

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

Ето заявка, която можете да използвате за изчисляване на децил от честота или брой в 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  ,count(продажби  ) като общо от `поръчка  ` група по 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. Изчислете децил от актуалност в MySQL

  2. 4 начина за намиране на дублиращи се редове в MySQL

  3. Как да създадете композитен първичен ключ в MySQL

  4. MySql Транспониране на ред в колона и колона в ред

  5. бърз избор на произволен ред от голяма таблица в mysql