sql >> Database >  >> RDS >> Mysql

Hoe kan ik het aantal klanten per dag per unieke en terugkerende klant voor een specifieke datum tellen?

U kunt het totale aantal bestellingen per dag krijgen door ze te groeperen op OrderDate:

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

En je kunt de nee krijgen. van de eerste bestellingen per dag van de volgende vraag:

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

Voeg je nu bij deze twee op OrderDate om de distributie van eerste en herhaalde bestellingen te krijgen:

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)


  1. MySQL migreren naar PostgreSQL op AWS RDS, deel 4

  2. Hoe 5 willekeurige getallen te genereren in de mysql-opgeslagen procedure?

  3. LEN() versus DATALENGTH() in SQL Server

  4. Hoe SQL Server 2017 &2019 gelijktijdig op een Mac te draaien