Abaixo está uma instrução que descreve uma tarefa de geração de SQL, combinada com uma entrada que fornece mais contexto sobre os esquemas de tabela disponíveis. Escreva o código SQL que responda adequadamente à solicitação
 ###Instrução: Qual é o valor médio de doação por programa, por trimestre?
 ###Tabelas: 
CREATE TABLE programs (id INT, name VARCHAR(255)); INSERT INTO programs (id, name) VALUES (1, 'Education'), (2, 'Health'), (3, 'Environment'); CREATE TABLE donations (id INT, program_id INT, donation_date DATE, amount DECIMAL(10, 2)); INSERT INTO donations (id, program_id, donation_date, amount) VALUES (1, 1, '2022-01-01', 500), (2, 1, '2022-01-02', 300), (3, 2, '2022-01-03', 800), (4, 3, '2022-01-04', 400), (5, 1, '2022-04-04', 900), (6, 2, '2022-04-05', 200), (7, 3, '2022-04-06', 600);
SELECT program_id, DATE_TRUNC('quarter', donation_date) AS quarter, AVG(amount) OVER (PARTITION BY program_id, quarter) AS avg_donation_amount FROM donations;