From a98d1ac004ddffad18d50286282cbc401e56f32d Mon Sep 17 00:00:00 2001 From: Fernando Erd <fcerd@inf.ufpr.br> Date: Fri, 19 Feb 2021 10:52:11 -0300 Subject: [PATCH] Add enrollment projection by region --- projecao_matricula_regiao_1.sql | 85 +++++++++++++++++++++++++++++++++ projecao_matricula_regiao_2.sql | 85 +++++++++++++++++++++++++++++++++ projecao_matricula_regiao_3.sql | 85 +++++++++++++++++++++++++++++++++ projecao_matricula_regiao_4.sql | 85 +++++++++++++++++++++++++++++++++ projecao_matricula_regiao_5.sql | 85 +++++++++++++++++++++++++++++++++ 5 files changed, 425 insertions(+) create mode 100644 projecao_matricula_regiao_1.sql create mode 100644 projecao_matricula_regiao_2.sql create mode 100644 projecao_matricula_regiao_3.sql create mode 100644 projecao_matricula_regiao_4.sql create mode 100644 projecao_matricula_regiao_5.sql diff --git a/projecao_matricula_regiao_1.sql b/projecao_matricula_regiao_1.sql new file mode 100644 index 0000000..ecd96aa --- /dev/null +++ b/projecao_matricula_regiao_1.sql @@ -0,0 +1,85 @@ +/* +Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of HOTMapper. + +HOTMapper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HOTMapper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HOTMapper. If not, see <https://www.gnu.org/licenses/>. +*/ + +-- depends: matricula 2017+ +-- SimCAQ: tabela de projeção de matrículas -- + +CREATE TABLE projecao_matricula_regiao_1 AS ( + +WITH urban_day AS + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id = 1) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + urban_night AS + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=1) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=1) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=1) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id) + +SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, + matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total, + COALESCE(rural_dia_total, 0) AS rural_dia_total, COALESCE(urbano_noite_total, 0) AS urbano_noite_total, + COALESCE(rural_noite_total, 0) AS rural_noite_total +FROM matricula + LEFT JOIN urban_day ON matricula.ano_censo=urban_day.ano_censo AND matricula.estado_id=urban_day.estado_id + AND matricula.municipio_id=urban_day.municipio_id AND matricula.serie_ano_id=urban_day.serie_ano_id + LEFT JOIN rural_day ON matricula.ano_censo=rural_day.ano_censo AND matricula.estado_id=rural_day.estado_id + AND matricula.municipio_id=rural_day.municipio_id AND matricula.serie_ano_id=rural_day.serie_ano_id + LEFT JOIN rural_night ON matricula.ano_censo=rural_night.ano_censo AND matricula.estado_id=rural_night.estado_id + AND matricula.municipio_id=rural_night.municipio_id AND matricula.serie_ano_id=rural_night.serie_ano_id + LEFT JOIN urban_night ON matricula.ano_censo=urban_night.ano_censo AND matricula.estado_id=urban_night.estado_id + AND matricula.municipio_id=urban_night.municipio_id AND matricula.serie_ano_id=urban_night.serie_ano_id +WHERE (matricula.regiao_id=1) +GROUP BY + matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, + rural_dia_total, urbano_noite_total, rural_noite_total +HAVING matricula.ano_censo >= 2018 AND etapa_ensino_escola_ano_id IS NOT NULL +ORDER BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id +); + +-- Create serie mod +INSERT INTO + projecao_matricula_regiao_1(ano_censo, estado_id, municipio_id, dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, rural_dia_total, + urbano_noite_total, rural_noite_total) +SELECT + ano_censo, estado_id, municipio_id, dependencia_adm_id, LEFT(etapa_ensino_escola_ano_id, 1) as serie, sum(urbano_dia_total), + sum(rural_dia_total), sum(urbano_noite_total), sum(rural_noite_total) +FROM projecao_matricula_regiao_1 +GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie; diff --git a/projecao_matricula_regiao_2.sql b/projecao_matricula_regiao_2.sql new file mode 100644 index 0000000..0feba2c --- /dev/null +++ b/projecao_matricula_regiao_2.sql @@ -0,0 +1,85 @@ +/* +Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of HOTMapper. + +HOTMapper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HOTMapper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HOTMapper. If not, see <https://www.gnu.org/licenses/>. +*/ + +-- depends: matricula 2017+ +-- SimCAQ: tabela de projeção de matrículas -- + +CREATE TABLE projecao_matricula_regiao_2 AS ( + +WITH urban_day AS + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id = 2) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + urban_night AS + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=2) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=2) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=2) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id) + +SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, + matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total, + COALESCE(rural_dia_total, 0) AS rural_dia_total, COALESCE(urbano_noite_total, 0) AS urbano_noite_total, + COALESCE(rural_noite_total, 0) AS rural_noite_total +FROM matricula + LEFT JOIN urban_day ON matricula.ano_censo=urban_day.ano_censo AND matricula.estado_id=urban_day.estado_id + AND matricula.municipio_id=urban_day.municipio_id AND matricula.serie_ano_id=urban_day.serie_ano_id + LEFT JOIN rural_day ON matricula.ano_censo=rural_day.ano_censo AND matricula.estado_id=rural_day.estado_id + AND matricula.municipio_id=rural_day.municipio_id AND matricula.serie_ano_id=rural_day.serie_ano_id + LEFT JOIN rural_night ON matricula.ano_censo=rural_night.ano_censo AND matricula.estado_id=rural_night.estado_id + AND matricula.municipio_id=rural_night.municipio_id AND matricula.serie_ano_id=rural_night.serie_ano_id + LEFT JOIN urban_night ON matricula.ano_censo=urban_night.ano_censo AND matricula.estado_id=urban_night.estado_id + AND matricula.municipio_id=urban_night.municipio_id AND matricula.serie_ano_id=urban_night.serie_ano_id +WHERE (matricula.regiao_id=2) +GROUP BY + matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, + rural_dia_total, urbano_noite_total, rural_noite_total +HAVING matricula.ano_censo >= 2018 AND etapa_ensino_escola_ano_id IS NOT NULL +ORDER BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id +); + +-- Create serie mod +INSERT INTO + projecao_matricula_regiao_2(ano_censo, estado_id, municipio_id, dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, rural_dia_total, + urbano_noite_total, rural_noite_total) +SELECT + ano_censo, estado_id, municipio_id, dependencia_adm_id, LEFT(etapa_ensino_escola_ano_id, 1) as serie, sum(urbano_dia_total), + sum(rural_dia_total), sum(urbano_noite_total), sum(rural_noite_total) +FROM projecao_matricula_regiao_2 +GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie; diff --git a/projecao_matricula_regiao_3.sql b/projecao_matricula_regiao_3.sql new file mode 100644 index 0000000..96789ca --- /dev/null +++ b/projecao_matricula_regiao_3.sql @@ -0,0 +1,85 @@ +/* +Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of HOTMapper. + +HOTMapper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HOTMapper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HOTMapper. If not, see <https://www.gnu.org/licenses/>. +*/ + +-- depends: matricula 2017+ +-- SimCAQ: tabela de projeção de matrículas -- + +CREATE TABLE projecao_matricula_regiao_3 AS ( + +WITH urban_day AS + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id = 3) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + urban_night AS + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=3) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=3) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=3) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id) + +SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, + matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total, + COALESCE(rural_dia_total, 0) AS rural_dia_total, COALESCE(urbano_noite_total, 0) AS urbano_noite_total, + COALESCE(rural_noite_total, 0) AS rural_noite_total +FROM matricula + LEFT JOIN urban_day ON matricula.ano_censo=urban_day.ano_censo AND matricula.estado_id=urban_day.estado_id + AND matricula.municipio_id=urban_day.municipio_id AND matricula.serie_ano_id=urban_day.serie_ano_id + LEFT JOIN rural_day ON matricula.ano_censo=rural_day.ano_censo AND matricula.estado_id=rural_day.estado_id + AND matricula.municipio_id=rural_day.municipio_id AND matricula.serie_ano_id=rural_day.serie_ano_id + LEFT JOIN rural_night ON matricula.ano_censo=rural_night.ano_censo AND matricula.estado_id=rural_night.estado_id + AND matricula.municipio_id=rural_night.municipio_id AND matricula.serie_ano_id=rural_night.serie_ano_id + LEFT JOIN urban_night ON matricula.ano_censo=urban_night.ano_censo AND matricula.estado_id=urban_night.estado_id + AND matricula.municipio_id=urban_night.municipio_id AND matricula.serie_ano_id=urban_night.serie_ano_id +WHERE (matricula.regiao_id=3) +GROUP BY + matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, + rural_dia_total, urbano_noite_total, rural_noite_total +HAVING matricula.ano_censo >= 2018 AND etapa_ensino_escola_ano_id IS NOT NULL +ORDER BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id +); + +-- Create serie mod +INSERT INTO + projecao_matricula_regiao_3(ano_censo, estado_id, municipio_id, dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, rural_dia_total, + urbano_noite_total, rural_noite_total) +SELECT + ano_censo, estado_id, municipio_id, dependencia_adm_id, LEFT(etapa_ensino_escola_ano_id, 1) as serie, sum(urbano_dia_total), + sum(rural_dia_total), sum(urbano_noite_total), sum(rural_noite_total) +FROM projecao_matricula_regiao_3 +GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie; diff --git a/projecao_matricula_regiao_4.sql b/projecao_matricula_regiao_4.sql new file mode 100644 index 0000000..aab18fd --- /dev/null +++ b/projecao_matricula_regiao_4.sql @@ -0,0 +1,85 @@ +/* +Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of HOTMapper. + +HOTMapper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HOTMapper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HOTMapper. If not, see <https://www.gnu.org/licenses/>. +*/ + +-- depends: matricula 2017+ +-- SimCAQ: tabela de projeção de matrículas -- + +CREATE TABLE projecao_matricula_regiao_4 AS ( + +WITH urban_day AS + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id = 4) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + urban_night AS + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=4) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=4) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=4) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id) + +SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, + matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total, + COALESCE(rural_dia_total, 0) AS rural_dia_total, COALESCE(urbano_noite_total, 0) AS urbano_noite_total, + COALESCE(rural_noite_total, 0) AS rural_noite_total +FROM matricula + LEFT JOIN urban_day ON matricula.ano_censo=urban_day.ano_censo AND matricula.estado_id=urban_day.estado_id + AND matricula.municipio_id=urban_day.municipio_id AND matricula.serie_ano_id=urban_day.serie_ano_id + LEFT JOIN rural_day ON matricula.ano_censo=rural_day.ano_censo AND matricula.estado_id=rural_day.estado_id + AND matricula.municipio_id=rural_day.municipio_id AND matricula.serie_ano_id=rural_day.serie_ano_id + LEFT JOIN rural_night ON matricula.ano_censo=rural_night.ano_censo AND matricula.estado_id=rural_night.estado_id + AND matricula.municipio_id=rural_night.municipio_id AND matricula.serie_ano_id=rural_night.serie_ano_id + LEFT JOIN urban_night ON matricula.ano_censo=urban_night.ano_censo AND matricula.estado_id=urban_night.estado_id + AND matricula.municipio_id=urban_night.municipio_id AND matricula.serie_ano_id=urban_night.serie_ano_id +WHERE (matricula.regiao_id=4) +GROUP BY + matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, + rural_dia_total, urbano_noite_total, rural_noite_total +HAVING matricula.ano_censo >= 2018 AND etapa_ensino_escola_ano_id IS NOT NULL +ORDER BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id +); + +-- Create serie mod +INSERT INTO + projecao_matricula_regiao_4(ano_censo, estado_id, municipio_id, dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, rural_dia_total, + urbano_noite_total, rural_noite_total) +SELECT + ano_censo, estado_id, municipio_id, dependencia_adm_id, LEFT(etapa_ensino_escola_ano_id, 1) as serie, sum(urbano_dia_total), + sum(rural_dia_total), sum(urbano_noite_total), sum(rural_noite_total) +FROM projecao_matricula_regiao_4 +GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie; diff --git a/projecao_matricula_regiao_5.sql b/projecao_matricula_regiao_5.sql new file mode 100644 index 0000000..cabe803 --- /dev/null +++ b/projecao_matricula_regiao_5.sql @@ -0,0 +1,85 @@ +/* +Copyright (C) 2016 Centro de Computacao Cientifica e Software Livre +Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + +This file is part of HOTMapper. + +HOTMapper is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +HOTMapper is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with HOTMapper. If not, see <https://www.gnu.org/licenses/>. +*/ + +-- depends: matricula 2017+ +-- SimCAQ: tabela de projeção de matrículas -- + +CREATE TABLE projecao_matricula_regiao_5 AS ( + +WITH urban_day AS + (SELECT count(*) as urbano_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id = 5) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + urban_night AS + (SELECT count(*) as urbano_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 1 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=5) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_day AS + (SELECT count(*) as rural_dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND (turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND + (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=5) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id), + + rural_night AS + (SELECT count(*) as rural_noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + FROM matricula + WHERE localizacao_id = 2 AND dependencia_adm_id IN (1,2,3) AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) and (regiao_id=5) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id + ORDER BY ano_censo, ano_censo, estado_id, municipio_id, serie_ano_id, dependencia_adm_id) + +SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, + matricula.serie_ano_id AS etapa_ensino_escola_ano_id, COALESCE(urbano_dia_total, 0) AS urbano_dia_total, + COALESCE(rural_dia_total, 0) AS rural_dia_total, COALESCE(urbano_noite_total, 0) AS urbano_noite_total, + COALESCE(rural_noite_total, 0) AS rural_noite_total +FROM matricula + LEFT JOIN urban_day ON matricula.ano_censo=urban_day.ano_censo AND matricula.estado_id=urban_day.estado_id + AND matricula.municipio_id=urban_day.municipio_id AND matricula.serie_ano_id=urban_day.serie_ano_id + LEFT JOIN rural_day ON matricula.ano_censo=rural_day.ano_censo AND matricula.estado_id=rural_day.estado_id + AND matricula.municipio_id=rural_day.municipio_id AND matricula.serie_ano_id=rural_day.serie_ano_id + LEFT JOIN rural_night ON matricula.ano_censo=rural_night.ano_censo AND matricula.estado_id=rural_night.estado_id + AND matricula.municipio_id=rural_night.municipio_id AND matricula.serie_ano_id=rural_night.serie_ano_id + LEFT JOIN urban_night ON matricula.ano_censo=urban_night.ano_censo AND matricula.estado_id=urban_night.estado_id + AND matricula.municipio_id=urban_night.municipio_id AND matricula.serie_ano_id=urban_night.serie_ano_id +WHERE (matricula.regiao_id=5) +GROUP BY + matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, + rural_dia_total, urbano_noite_total, rural_noite_total +HAVING matricula.ano_censo >= 2018 AND etapa_ensino_escola_ano_id IS NOT NULL +ORDER BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.dependencia_adm_id, etapa_ensino_escola_ano_id +); + +-- Create serie mod +INSERT INTO + projecao_matricula_regiao_5(ano_censo, estado_id, municipio_id, dependencia_adm_id, etapa_ensino_escola_ano_id, urbano_dia_total, rural_dia_total, + urbano_noite_total, rural_noite_total) +SELECT + ano_censo, estado_id, municipio_id, dependencia_adm_id, LEFT(etapa_ensino_escola_ano_id, 1) as serie, sum(urbano_dia_total), + sum(rural_dia_total), sum(urbano_noite_total), sum(rural_noite_total) +FROM projecao_matricula_regiao_5 +GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie; -- GitLab