Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je obtenir le nombre de clients par jour par client unique et récurrent pour une date spécifique ?

Vous pouvez obtenir le total des commandes par jour en regroupant sur OrderDate :

SELECT OrderDate, COUNT(OrderNumber) AS total FROM orders GROUP BY OrderDate

Et vous pouvez obtenir le non. des premières commandes par jour à partir de la requête suivante :

SELECT OrderDate, COUNT(q1.CustomerID) AS first FROM (SELECT CustomerID, min(OrderDate) AS OrderDate FROM orders GROUP BY CustomerID)q1 GROUP BY q1.OrderDate

Rejoignez maintenant ces deux sur OrderDate pour obtenir la distribution des premières commandes et des commandes répétées :

SELECT a.OrderDate, a.first, (b.total - a.first) AS repeated FROM
(SELECT OrderDate, COUNT(q1.CustomerID) AS first FROM (SELECT CustomerID, min(OrderDate) AS OrderDate FROM orders GROUP BY CustomerID)q1 GROUP BY q1.OrderDate)a
JOIN
(SELECT OrderDate, COUNT(OrderNumber) AS total FROM orders GROUP BY OrderDate)b
on(a.OrderDate = b.OrderDate)