sql >> Databáze >  >> RDS >> Mysql

Jak napsat SQL dotaz, který počítá počet řádků za měsíc a rok?

Nejsem obeznámen se strukturou databáze vBulletin, ale měli byste udělat něco takového , za předpokladu, že vaše uživatelská tabulka má datum/datum, čas/časové razítko created_date nebo reg_timestamp sloupec nebo něco podobného pomocí MySQL YEAR() a MONTH() funkce .

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

Výsledkem bude něco podobného tomuto:

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

Edit:ohledně Daveova komentáře: Zdá se, že datum vBulletinu je uloženo ve formátu Unixtime. V tomto případě jednoduše zalomte sloupec pomocí FROM_UNIXTIME převede jej na čitelné datum MySQL:

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. Pořiďte si svůj vlastní cloud dostupný pro DigitalOcean

  2. Matematické funkce serveru SQL (úplný seznam)

  3. PHP generuje dynamické vložení PDO

  4. existuje v ms-access funkce group_concat?