sql >> Databasteknik >  >> RDS >> Mysql

Hur skriver man en SQL-fråga som räknar antalet rader per månad och år?

Jag är inte bekant med vBulletins databasstruktur, men du bör göra något så här , förutsatt att din användartabell har ett datum/datum/tidsstämpel created_date eller reg_timestamp kolumn eller något liknande, med MySQL:s ÅR() och MONTH() funktioner .

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

Detta kommer att resultera i något som liknar detta:

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

Redigering:angående Daves kommentar: vBulletins datum verkar vara lagrat i Unixtime-format. I det här fallet lindar du bara kolumnen med FROM_UNIXTIME kommer att konvertera det till ett läsbart 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. Hur DAYOFYEAR() fungerar i MariaDB

  2. Hur man får alla tabeller med eller utan primärnyckelbegränsning i SQL Server Database - SQL Server / TSQL Tutorial 59

  3. vänster gå samman multiplicera värden

  4. Hur söker man efter Soundex()-substrängar i MySQL?