sql >> Database >  >> RDS >> Mysql

Bereken deciel in MySQL op basis van totalen

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

  1. Kan ik in MySQL één rij kopiëren om in dezelfde tabel in te voegen?

  2. Hoe de identiteitskolomwaarde in de SQL Server-tabel opnieuw in te stellen - SQL Server / T-SQL-zelfstudiedeel 43

  3. Maanden toevoegen aan een datum in SQLite

  4. Een tabelkolom hernoemen in Oracle 10g