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: Listar todos os programas e suas métricas de engajamento de voluntários correspondentes para 2022, ordenados pelo maior número de voluntários?
 ###Tabelas: 
CREATE TABLE Programs (ProgramID INT, ProgramName TEXT, Budget FLOAT); CREATE TABLE VolunteerPrograms (VolunteerID INT, ProgramID INT, VolunteerDate DATE); INSERT INTO Programs (ProgramID, ProgramName, Budget) VALUES (1, 'Education', 10000.00), (2, 'Health', 15000.00); INSERT INTO VolunteerPrograms (VolunteerID, ProgramID, VolunteerDate) VALUES (1, 1, '2022-01-01'), (2, 1, '2022-02-01'), (3, 2, '2022-03-01'), (4, 2, '2022-04-01');
SELECT Programs.ProgramName, COUNT(DISTINCT VolunteerPrograms.VolunteerID) as VolunteerCount FROM Programs INNER JOIN VolunteerPrograms ON Programs.ProgramID = VolunteerPrograms.ProgramID WHERE YEAR(VolunteerPrograms.VolunteerDate) = 2022 GROUP BY Programs.ProgramName ORDER BY VolunteerCount DESC;