2012-04-12 10 views
0

Ich habe mir den Kopf verdreht und versucht, eine Abfrage zu erstellen, um ein Datum anzuzeigen, um Jahre -> Monate -> Anzahl (Monate mit diesem Jahr) anzuzeigen.Anzahl der Monate von Datetime in MySQL mit Jahren

Beispiel: Ich möchte wie dies meine Ergebnisse zeigen:

Year Mth  # 
2012 Apr  595 
2012 Mar  27 
2011 Oct  1 
etc... 

meine Tabelle wie folgt aussieht:

create table `log` (
    `datetime` datetime , 
    `username` varchar (75), 
    `clientaddr` varchar (225), 
    `action` varchar (75), 
    `details` varchar (300) 
); 

Ich möchte alle Datensätze in der Protokolltabelle zeigen, wie gezeigt, über. Hat jemand irgendwelche Vorschläge? Fühlen Sie sich frei, einen Algorithmus zu teilen, um das gleiche zu tun.

Vielen Dank im Voraus :)

+0

Wie berechnen Sie den Wert von # ich meine, ist diese Summe von clientaddr oder etwas anderes ??? –

+0

Der Wert von # ist die Anzahl aller Datensätze mit diesem Monat und Jahr. –

Antwort

5

Wie wäre:

select year(datetime) as year, monthname(datetime) as month, count(*) from log group by year, month order by year, month; 
+0

Das hat perfekt funktioniert. Vielen Dank :) –

1
SELECT YEAR(`DateTime`) AS Year, MONTH(`DateTime`) as Month, COUNT(*) AS Count 
FROM Log 
GROUP BY YEAR(`DateTime`), MONTHNAME(`DateTime`) 
ORDER BY Year DESC, Month DESC 

Es ist nicht zu verwenden Datetime als Spaltenname empfohlen.

Verwandte Themen