Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Berechnen Sie das Dezil aus der Aktualität in MySQL

Manchmal möchten Sie vielleicht das Dezil aus der Neuheit in MySQL basierend auf berechnen. Zum Beispiel, um Kunden basierend auf der Neuheit von Käufen oder Bestellungen zu ordnen, anstatt basierend auf dem Gesamtumsatz.

Dezil aus Aktualität berechnen

Dies hilft bei der Erstellung von Sonderangeboten für Personen, die kürzlich etwas auf Ihrer Website gekauft haben. Es gibt noch keine Funktionen dafür. Hier ist eine fertige Abfrage dafür.

Beispiel:Sie haben einen Tisch Bestellungen die alle Produktbestellungen für jeden Benutzer enthält. Sie möchten das Dezil aus der Neuheit von Bestellungen berechnen.

Dezile+-----------+----------------+---------+------- --------+| Benutzer-ID | neueste | Rang | Dezil |+-----------+----------------+---------+-------- -------+| 1 | 2013-11-20 | 1 | 100 || 4 | 2013-11-11 | 2 | 66,67 || 3 | 2013-10-20 | 3 | 33.33 |+-----------+---------------+---------+-------- -------+

Hier ist eine Abfrage, die Sie verwenden können, um das Dezil aus der Aktualität in MySQL zu berechnen. Ersetzen Sie einfach die Spalten – user_id, purchase_date und table – order. Dabei erhält jeder Nutzer das späteste Kaufdatum. Dann ordnet es sie nach dem letzten Kaufdatum ein. Schließlich wird das Dezil anhand des Ranges berechnet.

wählen Sie user_id aus  ,latest,rank,round(10*(cnt-rank+1)/cnt,0) as decile from (SELECT user_id,latest,@curRank :=@curRank + 1 AS rankFROM (select user_id  ,max(Kaufdatum  ) spätestens ab `Bestellung  ` nach user_id gruppieren  )p, (SELECT @curRank :=0) rORDER BY Latest Desc ) as dt,(select count(distinct user_id  ) als cnt from`order  `) als ct

Wenn Sie bereits das letzte Kaufdatum für jeden Benutzer in der Tabelle haben und die Tabelle direkt verwenden möchten, um das Dezil aus der Neuheit des Kaufs zu berechnen, ist hier eine Abfrage