2016-07-14 7 views
-1

Ich habe einige Login-Daten in einer Datenbank und möchte einige Statistiken nach Datum gruppiert bekommen.Mysql Group Ich zähle nicht korrekt

Was würde Ich mag haben ist:

2016-07-01 : 13 different users logged in 
2016-07-02 : 9 different users logged in 
2016-07-01 : 12 different users logged in 
... 

Was ich bisher:

2016-07-01 : 13 different users logged in 
2016-07-02 : 13 different users logged in 
2016-07-01 : 13 different users logged in 

Meine Frage:

SELECT COUNT(DISTINCT user_id) as num, zeitstempel 
FROM log 
WHERE zeitstempel BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 50 DAY) AND CURRENT_TIMESTAMP 
GROUP BY DATE(zeitstempel) 
ORDER BY DATE(zeitstempel) ASC 

Hat jemand eine Lösung haben, warum diese Abfrage funktioniert nicht?

+0

können Sie die Fehlermeldung aktualisieren –

+0

@MaheshMadushanka Bitte verbringen Sie einige Sekunden mehr, wenn [eine Änderung vorschlagen] (http://stackoverflow.com/review/suggested-edits/13006414), um das Problem richtig zu beheben. Nur 4 Leerzeichen hinzuzufügen, ohne das '' zu entfernen, verbessert nicht wirklich die Formatierung. Darüber hinaus ist ein Hinweis wie der von Ihnen eingegebene nicht erforderlich, da er in [Überarbeitungsverlauf] (http://stackoverflow.com/posts/38374077/revisions) angezeigt wird. Sie erhalten das Privileg, Posts im Alleingang bearbeiten zu können. Bitte verwenden Sie es mit Bedacht. – Matt

+0

Beachten Sie, dass Zeitstempel unbestimmt sein wird. Und ein Ergebnis ohne Datensatz macht ungefähr so ​​viel Spaß wie ein Stick ohne Lollipop. – Strawberry

Antwort

0

Hoffe, das hilft.

SELECT COUNT(DISTINCT user_id) as num, zeitstempel FROM log 
WHERE zeitstempel BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 50 DAY) AND DATE(CURRENT_TIMESTAMP) 
GROUP BY DATE(zeitstempel) 
ORDER BY DATE(zeitstempel) ASC 

Sie CURRENT_TIMESTAMP verwenden Sie haben DATE zu verwenden (CURRENT_TIMESTAMP).