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: Quantos programas de engajamento comunitário existem para cada local de patrimônio na Europa?
 ###Tabelas: 
CREATE TABLE heritage_sites (id INT, name VARCHAR(50), location VARCHAR(50), type VARCHAR(50), PRIMARY KEY(id)); INSERT INTO heritage_sites (id, name, location, type) VALUES (1, 'Colosseum', 'Italy, Europe', 'Ancient Roman'), (2, 'Acropolis', 'Greece, Europe', 'Ancient Greek'), (3, 'Alhambra', 'Spain, Europe', 'Islamic'); CREATE TABLE community_programs (id INT, heritage_site_id INT, program_name VARCHAR(50), PRIMARY KEY(id)); INSERT INTO community_programs (id, heritage_site_id, program_name) VALUES (1, 1, 'Guided Tours'), (2, 1, 'Educational Workshops'), (3, 2, 'Cultural Festivals'), (4, 3, 'Restoration Projects');
SELECT hs.name, hs.location, hs.type, COUNT(cp.id) AS program_count FROM heritage_sites hs JOIN community_programs cp ON hs.id = cp.heritage_site_id GROUP BY hs.name, hs.location, hs.type;