se ho capito cosa ti serve, lo puoi fare anche solo con MySQL (con tre query distinte)
ti metto quella settimanale qua sotto, per le altre un po' di "fantasia" e le tiri fuori da solo
codice:SELECT avg(valueUSD) as media, week(date_time) as settimana, year(date_time) as anno FROM usd_rates GROUP BY anno, settimana