sql >> Database >  >> RDS >> Mysql

Hoe schrijf je een SQL-query die het aantal rijen per maand en per jaar telt?

Ik ben niet bekend met de databasestructuur van vBulletin, maar je zou zoiets als dit moeten doen , ervan uitgaande dat uw gebruikerstabel een datum/datum/tijdstempel heeft created_date of reg_timestamp kolom of iets dergelijks, met behulp van MySQL's JAAR() en MAAND() functies .

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

Dit zal resulteren in iets wat hier op lijkt:

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

Bewerken:betreffende de opmerking van Dave: De datum van vBulletin lijkt te zijn opgeslagen in Unixtime-indeling. In dit geval wikkelt u de kolom eenvoudigweg in met FROM_UNIXTIME zal het converteren naar een leesbare MySQL-datum:

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


  1. Verkenning van datamodellering (hoe je een verstandige database bij elkaar kunt houden)

  2. Laravel $q->where() tussen datums

  3. Een ORDER BY-clausule schrijven met uitzonderingen met SQL

  4. Datum ontleden in MySQL