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