Die nachfolgende Abfrage gibt die Anzahl von Bestellungen pro Kunde, wobei die Liste nach dieser Anzahl absteigend sortiert wird:
SELECT customer_firstname, customer_lastname, COUNT(entity_id) AS count, GROUP_CONCAT(date(created_at)) AS order_dates FROM sales_flat_order WHERE status = 'complete' GROUP BY customer_email ORDER BY count DESC LIMIT 100;
Um sowohl registrierte Kunden als auch Gastbestellungen zu berücksichtigen, werden die Kunden anhand ihrer E-Mail identifiziert und zusammengefasst.
Mit einer Zusatzbedingung lässt sich die Liste auf Bestellungen in einem bestimmten Monat und Jahr beschränken:
SELECT customer_firstname, customer_lastname, COUNT(entity_id) AS count, GROUP_CONCAT(date(created_at)) AS order_dates FROM sales_flat_order WHERE status = 'complete' AND YEAR(created_at) = 2012 AND MONTH(created_at) = 1 GROUP BY customer_email ORDER BY count DESC LIMIT 100;
Gibt es jetzt unter Berichte -> Kunden -> Kunden nach Bestellanzahl