sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag få antalet kunder per dag efter unika och återkommande kunder för ett specifikt datum?

Du kan få de totala beställningarna per dag genom att gruppera på OrderDate:

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

Och du kan få nej. av första beställningar per dag från följande fråga:

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

Gå nu med dessa två på OrderDate för att få distributionen av första och upprepade beställningar :

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. Hur man filtrerar poster med aggregatfunktion AVG

  2. Behöver konvertera Oracle Merge till query till PostgreSQL

  3. SQL:Dynamisk vy med kolumnnamn baserat på kolumnvärden i källtabellen

  4. Hur man migrerar SQL Server-jobb från en SQL Server-instans till en annan