sql >> Database teknologi >  >> RDS >> Mysql

Beregn decil i MySQL baseret på totaler

Du kan beregne decil i MySQL for at identificere de bedste kunder. Grundlæggende rangerer og grupperer du kunder i 10 grupper baseret på det samlede salg. På baggrund af resultatet kan du komme med mere fokuserede, relevante fastholdelsestiltag. Her er en klar forespørgsel til at gøre det.

Beregn decil i MySQL

F.eks. har du et bord ordrer som indeholder alle produktordrer for hver bruger. Du ønsker at beregne decil i MySQL.

deciler+------------+--------+--------+-------------- --+| bruger_id | i alt | rang | decil |+------------+-----------+--------+------------------- -+| 1 | 30 | 3 | 3 || 4 | 100 | 2 | 7 || 3 | 200 | 1 | 10 |+-----------+-------------------- -+

Her er en forespørgsel, du kan bruge til at beregne decil i MySQL baseret på totaler. Udskift blot kolonnerne – bruger_id, salg og tabel – rækkefølge. Den samler det samlede salg for hver bruger. Så rangerer den dem på det samlede salg. Til sidst beregner den decil ved hjælp af rang.

vælg user_id  ,total,rank,round(10*(cnt-rank+1)/cnt,0) som decil fra (SELECT user_id,total,@curRank :=@curRank + 1 AS rankFROM (vælg user_id  ,sum(salg  ) i alt fra `ordre  ` gruppe af user_id  )p, (SELECT @curRank :=0) rORDER BY total desc ) som dt,(vælg count(distinct user_id  ) som cnt fra `ordre  `) som ct

Hvis du allerede har samlet salg for hver bruger i tabellen og ønsker at bruge tabellen direkte til at beregne decil, er her en forespørgsel

  1. Shell-script til at udføre pgsql-kommandoer i filer

  2. Min MySQL-trigger virker ikke, simpel syntaks, ikke kompliceret

  3. Parse XML til SQL Server

  4. vælg fra en tabel, indsæt i en anden tabel oracle sql-forespørgsel