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: Liste os 3 maiores valores de doação para cada categoria de programa, excluindo categorias com menos de 3 doações.
 ###Tabelas: 
CREATE TABLE program_donations (program_category VARCHAR(20), donation_amount INT);INSERT INTO program_donations VALUES ('Arts', 5000), ('Education', 10000), ('Health', 15000), ('Arts', 6000), ('Education', 7000), ('Health', 8000);CREATE TABLE program_category_count (program_category VARCHAR(20), donation_count INT);INSERT INTO program_category_count VALUES ('Arts', 2), ('Education', 2), ('Health', 2);
SELECT program_category, donation_amount FROM (SELECT program_category, donation_amount, DENSE_RANK() OVER (PARTITION BY program_category ORDER BY donation_amount DESC) AS donation_rank FROM program_donations) AS donation_ranks WHERE donation_ranks.donation_rank <= 3 AND program_category IN (SELECT program_category FROM program_category_count WHERE donation_count >= 3);