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 é a porcentagem de voluntários que retornaram pela segunda vez a cada programa em 2024, ordenada por porcentagem em ordem decrescente?
 ###Tabelas: 
CREATE TABLE Programs (ProgramID INT, ProgramName VARCHAR(50), StartDate DATE); CREATE TABLE Volunteers (VolunteerID INT, ProgramID INT, SignUpDate DATE, Returned BOOLEAN); INSERT INTO Programs (ProgramID, ProgramName, StartDate) VALUES (1, 'ProgramA', '2024-01-01'), (2, 'ProgramB', '2024-01-01'), (3, 'ProgramC', '2024-01-01'); INSERT INTO Volunteers (VolunteerID, ProgramID, SignUpDate, Returned) VALUES (1, 1, '2024-01-01', TRUE), (2, 1, '2024-01-02', FALSE), (3, 2, '2024-01-01', TRUE), (4, NULL, '2024-01-01', FALSE);
SELECT p.ProgramName, COUNT(v.VolunteerID) * 100.0 / SUM(COUNT(v.VolunteerID)) OVER (PARTITION BY p.ProgramID) AS PercentageReturned FROM Programs p JOIN Volunteers v ON p.ProgramID = v.ProgramID WHERE YEAR(v.SignUpDate) = 2024 GROUP BY p.ProgramName, v.ProgramID, v.Returned ORDER BY PercentageReturned DESC;