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 foi a taxa de retenção dos voluntários que participaram de programas de artes e cultura em 2021?
 ###Tabelas: 
CREATE TABLE Volunteers (volunteer_id INT, volunteer_name VARCHAR(50), first_volunteer_date DATE, last_volunteer_date DATE); CREATE TABLE Volunteer_Hours (volunteer_id INT, program_id INT, hours DECIMAL(5,2), volunteer_date DATE);
SELECT 100.0 * COUNT(DISTINCT v1.volunteer_id) / COUNT(DISTINCT v2.volunteer_id) AS retention_rate FROM Volunteers v1 JOIN Volunteers v2 ON v1.volunteer_id = v2.volunteer_id WHERE v1.first_volunteer_date BETWEEN '2021-01-01' AND '2021-12-31' AND v2.last_volunteer_date BETWEEN '2021-01-01' AND '2021-12-31' AND v1.volunteer_id IN (SELECT volunteer_id FROM Volunteer_Hours WHERE program_id IN (SELECT program_id FROM Programs WHERE category = 'arts & culture')) AND v2.volunteer_id IN (SELECT volunteer_id FROM Volunteer_Hours WHERE program_id IN (SELECT program_id FROM Programs WHERE category = 'arts & culture') AND volunteer_date BETWEEN '2020-01-01' AND '2020-12-31');