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 de doadores únicos e o valor total das doações para cada programa no primeiro semestre de 2021?
 ###Tabelas: 
CREATE TABLE program_donations (donation_id INT, program_id INT, donor_id INT, donation_amount FLOAT, donation_date DATE); INSERT INTO program_donations (donation_id, program_id, donor_id, donation_amount, donation_date) VALUES (1, 1, 1, 80, '2021-01-01'); INSERT INTO program_donations (donation_id, program_id, donor_id, donation_amount, donation_date) VALUES (2, 2, 2, 100, '2021-03-01');
SELECT p.program_name, COUNT(DISTINCT d.donor_id) AS num_donors, SUM(d.donation_amount) AS total_donation FROM program_donations d INNER JOIN programs p ON d.program_id = p.program_id WHERE EXTRACT(YEAR FROM d.donation_date) = 2021 AND EXTRACT(MONTH FROM d.donation_date) BETWEEN 1 AND 6 GROUP BY p.program_name;