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 escolas públicas em cada estado e a porcentagem dessas escolas com programas de almoço gratuito?
 ###Tabelas: 
CREATE TABLE states (state_name VARCHAR(255), state_abbreviation VARCHAR(255)); INSERT INTO states (state_name, state_abbreviation) VALUES ('Alabama', 'AL'), ('Alaska', 'AK'), ('Arizona', 'AZ'); CREATE TABLE schools (school_name VARCHAR(255), school_type VARCHAR(255), state_abbreviation VARCHAR(255)); INSERT INTO schools (school_name, school_type, state_abbreviation) VALUES ('School1', 'Public', 'AL'), ('School2', 'Public', 'AK'), ('School3', 'Public', 'AZ'); CREATE TABLE free_lunch (school_name VARCHAR(255), has_free_lunch BOOLEAN); INSERT INTO free_lunch (school_name, has_free_lunch) VALUES ('School1', true), ('School2', false), ('School3', true);
SELECT s.state_abbreviation, COUNT(*) AS num_schools, 100.0 * SUM(CASE WHEN fl.has_free_lunch THEN 1 ELSE 0 END) / COUNT(*) AS pct_free_lunch FROM schools s JOIN free_lunch fl ON s.school_name = fl.school_name GROUP BY s.state_abbreviation;