Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment écrire une requête SQL qui compte le nombre de lignes par mois et par an ?

Je ne connais pas la structure de la base de données de vBulletin, mais vous devriez faire quelque chose comme ça , en supposant que votre table utilisateur a une date/dateheure/horodatage created_date ou reg_timestamp colonne ou quelque chose de similaire, en utilisant les ANNEE() et MOIS() fonctions .

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

Cela se traduira par quelque chose de similaire à ceci :

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

Edit :concernant le commentaire de Dave : La date de vBulletin semble être stockée au format Unixtime. Dans ce cas, enveloppez simplement la colonne avec FROM_UNIXTIME le convertira en une date MySQL lisible :

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