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: Identificar os 3 principais países com o maior número de programas de educação comunitária, com base nas tabelas "education_programs", "countries" e "habitat_preservation".
 ###Tabelas: 
CREATE TABLE education_programs (program_name VARCHAR(255), country VARCHAR(255), habitat_type VARCHAR(255)); CREATE TABLE countries (country VARCHAR(255), region VARCHAR(255)); CREATE TABLE habitat_preservation (habitat_type VARCHAR(255), location VARCHAR(255));
SELECT e1.country, COUNT(e1.program_name) as num_programs FROM education_programs e1 INNER JOIN countries c1 ON e1.country = c1.country INNER JOIN habitat_preservation h1 ON e1.habitat_type = h1.habitat_type GROUP BY e1.country ORDER BY num_programs DESC LIMIT 3;