Mysql
 sql >> Database >  >> RDS >> Mysql

Come generare dati in MySQL?

SQL è notoriamente inadeguato nel restituire dati che non sono nel database. Puoi trovare i valori di inizio e fine per gap di date, ma ottenere tutte le date è difficile.

La soluzione è creare una tabella del calendario con un record per ogni data e COLLEGARE OUTER alla tua query.

Ecco un esempio supponendo che create_at sia di tipo DATE:

SELECT calendar_date, COUNT(`id`)
FROM calendar LEFT OUTER JOIN my_table ON calendar.calendar_date = my_table.created_at
GROUP BY calendar_date

(Immagino che create_at sia davvero DATETIME, quindi dovrai fare un po' più di ginnastica per UNIRTI ai tavoli).