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

Přidejte chybějící měsíc do výsledku dotazu

Vytvořte tabulku se všemi měsíci a poté ji doleva připojte k dotazu. V souladu s

select count(1) as count, months.month, year(published_at) as year
from months left join articles on months.month = month(published_at)
where published_at >= (now() - interval 1 year) and published_at <= now()
group by month(published_at)
order by year asc, month asc

Bude to fungovat, ale vrátí vám výsledky od ledna do prosince a nedá vám roky. Podobná otázka byla položena dříve, pak jsem přišel s velmi složitým dotazem, takže pokud nenajdete nic jednoduššího, zvažte se podívat:

Dotaz mezi daty nefunguje, teď jsme v novém roce



  1. Jak nainstalovat SQLcl na Mac

  2. If-příkaz v uložené proceduře MySQL pro výběr dat

  3. SQL dotaz, který vrací všechna data, která nejsou v tabulce použita

  4. Mysql dotaz s Left Join je příliš pomalý