Mysql-Abfrage, um die Anzahl pro Monat zu erhalten

8

Ich habe eine Tabelle für meine Benutzer, die ein Feld namens "created" haben, das das Registrierungsdatum hat.

Wie kann ich eine Liste erhalten, die die Anzahl der Anmeldungen pro Monat in den letzten 12 Monaten enthält? So:

%Vor%

Ich bin nicht daran gewöhnt, mit mysql zu arbeiten, daher weiß ich bis jetzt nur, wie ich die Anzahl der Registrierungen im letzten Jahr zählen kann und nicht, wie ich diese Anzahl in den letzten 12 Monaten gruppieren soll. Danke im Voraus!

AKTUALISIEREN

Jetzt bekomme ich das mit @fthiella Lösung:

%Vor%

Wie kann ich Abfragen erzwingen, um mir die Monate mit count = 0 zu geben?

Lösung von @fthiella (vielen Dank!):

%Vor%

Und die Ergebnisse:

%Vor%     
David R 02.04.2013, 21:00
quelle

3 Antworten

9

Wenn ein INT-Feld erstellt wird, sollten Sie FROM_UNIXTIME Funktion, um es in ein Datumsfeld zu konvertieren, und dann MONTH Funktion zum Extrahieren des Monats:

%Vor%

Dies zählt alle Zeilen, die in den letzten 12 Monaten erstellt wurden. Bitte beachten Sie, dass es wahrscheinlich besser ist, auch nach dem Jahr zu gruppieren:

%Vor%

Wenn Sie anstelle der Zeilen die Registrierungsnummern zählen müssen, können Sie etwas wie

verwenden %Vor%

zum Überspringen von Nullwerten oder

%Vor%

um nur bestimmte zu zählen.

Bearbeiten

Wenn Sie auch Monate mit count = 0 anzeigen möchten, würde ich eine Abfrage wie diese verwenden, die alle Monate für das aktuelle und das vorherige Jahr zurückgibt:

%Vor%

Und dann würde ich einen LINKEN JOIN verwenden, der alle Zeilen der ersten Abfrage und nur die Zeilen der zweiten Abfrage zurückgibt, die übereinstimmt:

%Vor%

(bitte beachte, dass ich hier nur die letzten 12 Monate betrachte, also wenn wir Mitte April 2013 sind, wird es im Mai 2012 - 13. April Zeilen zählen, wenn dies nicht das richtige Verhalten ist, lass es mich wissen )

    
fthiella 02.04.2013, 21:03
quelle
9
%Vor%     
Vatev 02.04.2013 21:03
quelle
0

Falls dies jemand anderem hilft, wollte ich diese Abfrage zusätzlich für ein bestimmtes Zeitintervall, das nicht unbedingt die letzten 12 Monate war (auch mit einem Zeitstempel für das Datum):

%Vor%     
David M 24.06.2015 16:58
quelle

Tags und Links