Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie schreibe ich eine SQL-Abfrage, die die Anzahl der Zeilen pro Monat und Jahr zählt?

Ich bin mit der Datenbankstruktur von vBulletin nicht vertraut, aber Sie sollten etwas in der Art tun , vorausgesetzt, Ihre Benutzertabelle hat einen Datums-/Datums-/Zeitstempel created_date oder reg_timestamp -Spalte oder etwas Ähnliches, indem Sie YEAR() und MONTH() Funktionen .

select 
    count(*) as count, 
    year(reg_timestamp) as year 
    month(reg_timestamp) as month
from users 
group by year, month;

Dies wird zu etwas Ähnlichem führen:

+-------+-------+------+
| count | month | year |
+-------+-------+------+
|     4 |    11 | 2008 | 
|     1 |    12 | 2008 | 
|   196 |    12 | 2009 | 
|   651 |     1 | 2010 | 
+-------+-------+------+

Edit:zu Daves Kommentar: Das Datum von vBulletin scheint im Unixtime-Format gespeichert zu sein. Umschließen Sie die Spalte in diesem Fall einfach mit FROM_UNIXTIME wandelt es in ein lesbares MySQL-Datum um:

select 
    count(*) as count, 
    year(from_unixtime(reg_timestamp)) as year 
    month(from_unixtime(reg_timestamp)) as month
from users 
group by year, month;