diff --git a/idm.sql b/idm.sql index 10fbe201a1f25a7fc301caa142bb4273f882448a..8211f10a43161f7abf1bce33be9b5c9848b11865 100644 --- a/idm.sql +++ b/idm.sql @@ -9,15 +9,20 @@ CREATE TABLE indice_distribuicao_matriculas AS ( FROM div_estado GROUP BY serie_ano_id), - nivel_sim1 AS (SELECT ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_brasil AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 1 AS nivel_simulacao - FROM matricula JOIN div_brasil ON matricula.serie_ano_id=div_brasil.serie_ano_id - WHERE ano_censo=2017 AND tipo <= 3 AND dependencia_adm_priv <=3 - GROUP BY ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa), + nivel_sim1 AS + (SELECT ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_brasil AS total_etapa, + cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 1 AS nivel_simulacao + FROM matricula JOIN div_brasil ON matricula.serie_ano_id=div_brasil.serie_ano_id + WHERE ano_censo=2017 AND tipo <= 3 AND dependencia_adm_priv <=3 + GROUP BY ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa), - nivel_sim2 AS (SELECT ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_estado AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 2 AS nivel_simulacao - FROM matricula JOIN div_estado ON matricula.serie_ano_id=div_estado.serie_ano_id AND matricula.estado_id=div_estado.estado_id - WHERE ano_censo=2017 AND tipo <= 3 AND dependencia_adm_priv <=3 - GROUP BY ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa) + nivel_sim2 AS + (SELECT ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_estado AS total_etapa, + cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice, 2 AS nivel_simulacao + FROM matricula JOIN div_estado ON + matricula.serie_ano_id=div_estado.serie_ano_id AND matricula.estado_id=div_estado.estado_id + WHERE ano_censo=2017 AND tipo <= 3 AND dependencia_adm_priv <=3 + GROUP BY ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa) SELECT * FROM nivel_sim1 UNION ALL diff --git a/projecao_matricula.sql b/projecao_matricula.sql index db069a685e620b9051164e0564e84105e5c0465f..48ea57d12c379550d088236ff8f885b78d8755ce 100644 --- a/projecao_matricula.sql +++ b/projecao_matricula.sql @@ -24,34 +24,36 @@ along with database. If not, see <https://www.gnu.org/licenses/>. CREATE TABLE projecao_matricula AS ( WITH urban_day AS - (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id - FROM matricula - WHERE localizacao_id = 1 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND - turma_turno_id IN (1, 2, 99) - GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id - ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id + FROM matricula + WHERE localizacao_id = 1 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND + turma_turno_id IN (1, 2, 99) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), urban_night AS - (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id - FROM matricula - WHERE localizacao_id = 1 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND - turma_turno_id = 3 - GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id - ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id + FROM matricula + WHERE localizacao_id = 1 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND + turma_turno_id = 3 + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), - rural_day AS (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id - FROM matricula - WHERE localizacao_id = 2 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND - turma_turno_id IN (1, 2, 99) - GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id - ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id + FROM matricula + WHERE localizacao_id = 2 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND + turma_turno_id IN (1, 2, 99) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id), - rural_night AS (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id - FROM matricula - WHERE localizacao_id = 2 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND - turma_turno_id = 3 - GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id - ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id) + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id + FROM matricula + WHERE localizacao_id = 2 AND tipo <= 3 AND dependencia_adm_id IN (1, 2, 3) AND + turma_turno_id = 3 + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id) SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total,