Skip to content
Snippets Groups Projects
Commit 5acbb643 authored by Fernando Erd's avatar Fernando Erd :ok_hand:
Browse files

Tabelas agrupadas por escolas e projeção de matricula com uma nova coluna

parent 2415e9c7
Branches
No related tags found
No related merge requests found
/*
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: docente, turma
-- SimCAQ: tabela de docentes por formação --
CREATE TABLE test_docente_por_formacao AS (
WITH
docente_total AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 0 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2018) AND (docente.nivel_tipo_formacao IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
),
docente_medio AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 2 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2018) AND (docente.nivel_tipo_formacao IN (1, 2, 3, 4))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
),
docente_superior AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 4 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (5, 6))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
),
docente_especializacao AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 6 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (7, 8))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
),
docente_mestrado AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 7 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (9, 10))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
),
docente_doutorado AS
(SELECT docente.id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.escola_id, docente.dependencia_adm_id as dependencia_adm_id, 8 as tipo_formacao
FROM docente
INNER JOIN turma ON (docente.turma_id=turma.id AND docente.ano_censo=turma.ano_censo)
INNER JOIN estado ON (docente.escola_estado_id=estado.id)
INNER JOIN municipio ON (docente.escola_municipio_id=municipio.id)
WHERE (docente.tipo_docente = 1 OR docente.tipo_docente = 5) AND
((docente.tipo_turma_id <= 3 AND docente.tipo_turma_atendimento_id IS NULL) OR
(docente.tipo_turma_atendimento_id <= 2 AND docente.tipo_turma_id IS NULL))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (11, 12))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.escola_id, docente.dependencia_adm_id,
docente.id_docente
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC, docente.escola_id ASC
)
SELECT * FROM docente_total
UNION ALL (SELECT * FROM docente_medio)
UNION ALL (SELECT * FROM docente_superior)
UNION ALL (SELECT * FROM docente_especializacao)
UNION ALL (SELECT * FROM docente_mestrado)
UNION ALL (SELECT * FROM docente_doutorado)
);
/*
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: matrícula
-- SimCAQ: índice de distribuição de matrículas--
CREATE TABLE test_indice_distribuicao_matriculas AS (
WITH div_estado AS
(SELECT count(serie_ano_id) AS total_estado, serie_ano_id, estado_id, ano_censo, localizacao_id,
dependencia_adm_id, escola_id, regiao_id
FROM matricula
WHERE ano_censo>=2018 AND dependencia_adm_id <=3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND municipio_id=3205309
GROUP BY serie_ano_id, estado_id, ano_censo, localizacao_id, dependencia_adm_id, escola_id, regiao_id),
div_estado_mod AS
(SELECT count(serie_ano_id) AS total_estado_mod, cast(LEFT(serie_ano_id, 1) as integer) as serie_mod, estado_id,
ano_censo, localizacao_id, dependencia_adm_id, escola_id, regiao_id
FROM matricula
WHERE ano_censo >= 2018 AND dependencia_adm_id <= 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND municipio_id=3205309
GROUP BY serie_mod, estado_id, ano_censo, localizacao_id, dependencia_adm_id, escola_id, regiao_id),
div_brasil AS
(SELECT sum(total_estado) AS total_brasil, serie_ano_id, ano_censo, localizacao_id, dependencia_adm_id, escola_id
FROM div_estado
GROUP BY serie_ano_id, ano_censo, localizacao_id, dependencia_adm_id, escola_id),
div_brasil_mod AS
(SELECT sum(total_brasil) AS total_brasil_mod, cast(LEFT(serie_ano_id, 1) as integer) as serie_mod, ano_censo,
localizacao_id, dependencia_adm_id, escola_id
FROM div_brasil
GROUP BY serie_mod, ano_censo, localizacao_id, dependencia_adm_id, escola_id),
nivel_sim1 AS
(SELECT matricula.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,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id
FROM matricula JOIN div_brasil ON matricula.serie_ano_id=div_brasil.serie_ano_id
AND matricula.ano_censo=div_brasil.ano_censo
AND matricula.localizacao_id=div_brasil.localizacao_id
AND matricula.dependencia_adm_id=div_brasil.dependencia_adm_id
WHERE matricula.ano_censo>=2018 AND dependencia_adm_priv <=3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND matricula.municipio_id=3205309
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id),
nivel_sim2 AS
(SELECT matricula.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,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id
FROM matricula JOIN div_estado ON matricula.serie_ano_id=div_estado.serie_ano_id
AND matricula.estado_id=div_estado.estado_id
AND matricula.ano_censo=div_estado.ano_censo
AND matricula.localizacao_id=div_estado.localizacao_id
AND matricula.dependencia_adm_id=div_estado.dependencia_adm_id
WHERE matricula.ano_censo>=2018 AND dependencia_adm_priv <=3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND matricula.municipio_id=3205309
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id),
nivel_sim1_mod AS
(SELECT matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod as serie_ano_id,
total_brasil_mod AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice,
1 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id
FROM matricula JOIN div_brasil_mod ON LEFT(matricula.serie_ano_id, 1)=div_brasil_mod.serie_mod
AND matricula.ano_censo=div_brasil_mod.ano_censo
AND matricula.localizacao_id=div_brasil_mod.localizacao_id
AND matricula.dependencia_adm_id=div_brasil_mod.dependencia_adm_id
WHERE matricula.ano_censo>=2018 AND dependencia_adm_priv <=3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND matricula.municipio_id=3205309
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id),
nivel_sim2_mod AS
(SELECT matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod as serie_ano_id,
total_estado_mod AS total_etapa, cast(count(matricula.serie_ano_id) AS double)/total_etapa AS indice,
2 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id
FROM matricula JOIN div_estado_mod ON LEFT(matricula.serie_ano_id, 1)=div_estado_mod.serie_mod
AND matricula.estado_id=div_estado_mod.estado_id
AND matricula.ano_censo=div_estado_mod.ano_censo
AND matricula.localizacao_id=div_estado_mod.localizacao_id
AND matricula.dependencia_adm_id=div_estado_mod.dependencia_adm_id
WHERE matricula.ano_censo>=2018 AND dependencia_adm_priv <=3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND matricula.municipio_id=3205309
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id, matricula.regiao_id)
SELECT * FROM nivel_sim1
UNION ALL
SELECT * FROM nivel_sim2
UNION ALL
SELECT * FROM nivel_sim1_mod
UNION ALL
SELECT * FROM nivel_sim2_mod
);
/*
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 2018+
-- SimCAQ: tabela de projeção de matrículas --
CREATE TABLE test_matricula_por_localizacao AS (
WITH
day_count AS
(SELECT count(*) as dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
dependencia_adm_id, escola_id, regiao_id
FROM matricula
WHERE dependencia_adm_id < 4 AND ano_censo >= 2018 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND
(turma_turno_id IN (1, 2, 4, 99) OR turma_turno_id IS null) AND municipio_id=3205309
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id, regiao_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id, regiao_id
),
night_count AS
(SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
dependencia_adm_id, escola_id, regiao_id
FROM matricula
WHERE dependencia_adm_id < 4 AND ano_censo >= 2018 AND turma_turno_id = 3 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND municipio_id=3205309
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id, regiao_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id, regiao_id
)
SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id,
matricula.serie_ano_id, matricula.escola_id, COALESCE(dia_total, 0) AS dia_total,
COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id, matricula.dependencia_adm_id, matricula.regiao_id
FROM matricula
LEFT JOIN day_count ON matricula.ano_censo=day_count.ano_censo AND matricula.estado_id=day_count.estado_id
AND matricula.municipio_id=day_count.municipio_id AND matricula.serie_ano_id=day_count.serie_ano_id
AND matricula.localizacao_id=day_count.localizacao_id
AND matricula.dependencia_adm_id=day_count.dependencia_adm_id
LEFT JOIN night_count ON matricula.ano_censo=night_count.ano_censo AND matricula.estado_id=night_count.estado_id
AND matricula.municipio_id=night_count.municipio_id AND matricula.serie_ano_id=night_count.serie_ano_id
AND matricula.localizacao_id=night_count.localizacao_id
AND matricula.dependencia_adm_id=night_count.dependencia_adm_id
WHERE matricula.ano_censo >= 2018 AND matricula.serie_ano_id IS NOT NULL AND matricula.dependencia_adm_id < 4 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND matricula.municipio_id=3205309
GROUP BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.serie_ano_id, matricula.escola_id, matricula.escola_id, dia_total,
noite_total, matricula.localizacao_id, matricula.dependencia_adm_id, matricula.regiao_id
);
-- Create serie mod
INSERT INTO
test_matricula_por_localizacao(ano_censo, estado_id, municipio_id, serie_ano_id, escola_id, dia_total, noite_total,
localizacao_id, dependencia_adm_id, regiao_id)
SELECT
ano_censo, estado_id, municipio_id, LEFT(serie_ano_id, 1) as serie, escola_id, sum(dia_total), sum(noite_total),
localizacao_id, dependencia_adm_id, regiao_id
FROM test_matricula_por_localizacao
GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id, dependencia_adm_id, escola_id, regiao_id;
/*
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 test_projecao_matricula 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)
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)
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)
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)
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
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
test_projecao_matricula(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 test_projecao_matricula
GROUP BY ano_censo, estado_id, municipio_id, dependencia_adm_id, serie;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment