2016-09-29 1 views
1

Hallo Ich habe eine Tabelle, die Benutzerereignisse protokolliert.MYSQL Feldwert finden, die nie vorher Recorder

date  | event | userId 
2016/09/29 | A  | 10 
2016/09/29 | A  | 3 
2016/09/29 | A  | 2 
2016/09/28 | A  | 2 
2016/09/28 | B  | 2 
2016/09/27 | A  | 1 
2016/09/27 | A  | 1 
2016/09/27 | B  | 1 

Ich brauche für jeden Tag des laufenden Monats zu zählen, die Anzahl der Benutzer-ID, die noch nie zuvor gesehen wurde (zu vereinfachen, die Zahl der neuen Nutzer).

Ich habe die folgende Abfrage für den aktuellen Tag erstellt.

Aber ich bin nicht in der Lage, eine effiziente Abfrage zu finden, um das gleiche Ergebnis für jeden Tag des aktuellen Monats zu erhalten.

Antwort

1

du versuchen:

SELECT myDate, COUNT(userId) AS user_count 
FROM (
    SELECT userId, DATE(MIN(date)) AS myDate 
    FROM event 
    GROUP BY userId 
) AS ch 
GROUP BY myDate 
+1

dieses für mich gearbeitet, danke. –

0
select fd date, count(1) newUserCount from 
(select min(date) fd ,userId from event where date between {monthStart} and {monthEnd} 
group by userId)t group by fd 

finden jeden ersten Besuch Datum des Benutzers des Monats, und die tägliche Anzahl der neuen Nutzer dieses Monats ist jeder User-Zahl des Tages.

Hope this helfen kann