Sto provando a scrivere una query MySQL per ottenere un valore medio al mese, per tutti i mesi compresi tra le date specificate. La mia idea è questa:Seleziona tutti i mesi entro un determinato intervallo di date, compresi quelli con valori 0
Query, qualcosa come
SELECT AVG(value1) as avg_value_1,
AVG(value2) as avg_value_2,
MONTH(save_date) as month,
YEAR(save_date) as year
FROM myTable
WHERE save_date BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY YEAR(save_date), MONTH(save_date)
avg_value_1 | avg_value_2 | month | year
5 | 4 | 1 | 2009
2 | 1 | 2 | 2009
7 | 5 | 3 | 2009
0 | 0 | 4 | 2009 <---
6 | 5 | 5 | 2009
3 | 6 | 6 | 2009
Vedete, senza valori sono stati inseriti nel mese di aprile del 2009, ma voglio che si mostrano come un, valore 0 0 in uscita. Qualche idea su come raggiungere questo obiettivo? Può essere fatto in MySQL?
Grazie per la risposta, ma ho davvero bisogno di una tabella contenente tutte le date possibili? Questo non può essere il modo più semplice! :) –
È difficile restituire valori che non esistono. :) –
Buon punto Lieven, ma MySQL conosce tutte le date a memoria, quando si usano i normali GetDate() e DateAdd() e così via ... Mi sembra che ci debba essere un modo per recuperarli! –