U kunt deciel in MySQL berekenen om de beste klanten te identificeren. Kortom, u rangschikt en groepeert klanten in 10 groepen op basis van de totale verkoop. Op basis van het resultaat kun je gerichtere, relevantere retentie-initiatieven bedenken. Hier is een kant-en-klare vraag om het te doen.
Deciel berekenen in MySQL
U heeft bijvoorbeeld een tafel bestellingen die alle productbestellingen voor elke gebruiker bevat. U wilt deciel berekenen in MySQL.
decielen+-----------+----------+---------+------------- --+| user_id | totaal | rang | deciel |+-----------+----------+---------+-------------- -+| 1 | 30 | 3 | 3 || 4 | 100 | 2 | 7 || 3 | 200 | 1 | 10 |+-----------+----------+---------+-------------- -+
Hier is een query die u kunt gebruiken om deciel in MySQL te berekenen op basis van totalen. Vervang gewoon de kolommen - user_id, sales en table - order. Het aggregeert de totale verkoop voor elke gebruiker. Vervolgens rangschikt het ze op de totale verkoop. Ten slotte berekent het deciel met behulp van rang.
selecteer user_id ,total,rank,round(10*(cnt-rank+1)/cnt,0) als deciel van (SELECT user_id,total,@curRank :=@curRank + 1 AS rankFROM (selecteer user_id ,sum(verkoop ) als totaal van `bestelling ` groeperen op user_id )p, (SELECT @curRank :=0) rORDER BY totaal desc ) als dt,(select count(distinct user_id ) als cnt van`bestelling `) als ct
Als u al de totale omzet voor elke gebruiker in de tabel heeft en de tabel rechtstreeks wilt gebruiken om deciel te berekenen, volgt hier een vraag