Можете да изчислите децил в 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
Ако вече имате общи продажби за всеки потребител в таблицата и искате директно да използвате таблицата за изчисляване на децил, ето заявка