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: Encontre os 3 programas com mais horas de voluntariado no último ano e o total de horas de voluntariado para cada programa.
 ###Tabelas: 
CREATE TABLE Programs (ProgramID INT, ProgramName TEXT); CREATE TABLE Volunteers (VolunteerID INT, ProgramID INT, Hours INT, VolunteerDate DATE);
SELECT Programs.ProgramName, SUM(Volunteers.Hours) AS TotalHours FROM Programs JOIN Volunteers ON Programs.ProgramID = Volunteers.ProgramID WHERE VolunteerDate >= DATEADD(year, -1, GETDATE()) GROUP BY Programs.ProgramName ORDER BY TotalHours DESC LIMIT 3;