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 número total de horas de voluntariado para cada 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 volunteer_hours (id INT, program_id INT, volunteer_date DATE, hours INT); INSERT INTO volunteer_hours (id, program_id, volunteer_date, hours) VALUES (1, 1, '2022-01-01', 5), (2, 1, '2022-01-02', 3), (3, 2, '2022-01-03', 6), (4, 3, '2022-01-04', 4);
SELECT program_id, DATE_TRUNC('quarter', volunteer_date) AS quarter, SUM(hours) OVER (PARTITION BY program_id, quarter) AS total_volunteer_hours FROM volunteer_hours;