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 médio de horas de voluntariado por voluntário para cada programa em 2021?
 ###Tabelas: 
CREATE TABLE programs (id INT, name VARCHAR(255)); INSERT INTO programs (id, name) VALUES (1, 'Mentoring'), (2, 'After-School Tutoring'), (3, 'Community Garden'); CREATE TABLE volunteer_hours (id INT, program_id INT, volunteer_id INT, hours INT); INSERT INTO volunteer_hours (id, program_id, volunteer_id, hours) VALUES (1, 1, 1, 25), (2, 2, 2, 30), (3, 1, 3, 20), (4, 3, 4, 40), (5, 2, 5, 35), (6, 1, 6, 22), (7, 3, 7, 45), (8, 2, 8, 33), (9, 1, 9, 27), (10, 3, 10, 50), (11, 1, 1, 20), (12, 2, 2, 25), (13, 1, 3, 30), (14, 3, 4, 35), (15, 2, 5, 30), (16, 1, 6, 25), (17, 3, 7, 40), (18, 2, 8, 35), (19, 1, 9, 30), (20, 3, 10, 45);
SELECT program_id, AVG(hours) as avg_volunteer_hours FROM volunteer_hours GROUP BY program_id;