Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tools/sql-scripts
1 result
Show changes
Commits on Source (8)
/*
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 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.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 (turma.tipo_turma_id <= 3))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (2, 3, 4, 5, 6, 7, 8))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.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_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.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 (turma.tipo_turma_id <= 3))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (2, 3))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.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_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.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 (turma.tipo_turma_id <= 3))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (4, 5))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.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_especializacao_mestrado_doutorado AS
(SELECT id_docente AS "id_docente", docente.ano_censo AS ano_censo, estado.id AS estado_id,
municipio.id AS municipio_id, docente.dependencia_adm_id as dependencia_adm_id,
docente.nivel_tipo_formacao 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 (turma.tipo_turma_id <= 3))
AND (docente.ano_censo >= 2017) AND (docente.nivel_tipo_formacao IN (6, 7, 8))
GROUP BY docente.ano_censo, estado.nome, estado.id, municipio.nome, municipio.id, docente.dependencia_adm_id,
docente.id_docente, docente.nivel_tipo_formacao
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
)
SELECT * FROM docente_total
UNION ALL (SELECT * FROM docente_medio)
UNION ALL (SELECT * FROM docente_superior)
UNION ALL (SELECT * FROM docente_especializacao_mestrado_doutorado)
);
......@@ -24,73 +24,79 @@ along with HOTMapper. If not, see <https://www.gnu.org/licenses/>.
CREATE TABLE 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
(SELECT count(serie_ano_id) AS total_estado, serie_ano_id, estado_id, ano_censo, localizacao_id,
dependencia_adm_id
FROM matricula
WHERE ano_censo>=2017 AND tipo <= 3 AND dependencia_adm_id <=3
GROUP BY serie_ano_id, estado_id, ano_censo, localizacao_id),
GROUP BY serie_ano_id, estado_id, ano_censo, localizacao_id, dependencia_adm_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
ano_censo, localizacao_id, dependencia_adm_id
FROM matricula
WHERE ano_censo >= 2017 AND tipo <= 3 AND dependencia_adm_id <= 3
GROUP BY serie_mod, estado_id, ano_censo, localizacao_id),
GROUP BY serie_mod, estado_id, ano_censo, localizacao_id, dependencia_adm_id),
div_brasil AS
(SELECT sum(total_estado) AS total_brasil, serie_ano_id, ano_censo, localizacao_id
(SELECT sum(total_estado) AS total_brasil, serie_ano_id, ano_censo, localizacao_id, dependencia_adm_id
FROM div_estado
GROUP BY serie_ano_id, ano_censo, localizacao_id),
GROUP BY serie_ano_id, ano_censo, localizacao_id, dependencia_adm_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
(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
FROM div_brasil
GROUP BY serie_mod, ano_censo, localizacao_id),
GROUP BY serie_mod, ano_censo, localizacao_id, dependencia_adm_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.localizacao_id, matricula.dependencia_adm_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>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
matricula.localizacao_id),
matricula.localizacao_id, matricula.dependencia_adm_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.localizacao_id, matricula.dependencia_adm_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>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, matricula.serie_ano_id, total_etapa,
matricula.localizacao_id),
matricula.localizacao_id, matricula.dependencia_adm_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
1 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_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>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
matricula.localizacao_id),
matricula.localizacao_id, matricula.dependencia_adm_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
2 AS nivel_simulacao, matricula.localizacao_id, matricula.dependencia_adm_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>=2017 AND tipo <= 3 AND dependencia_adm_priv <=3
GROUP BY matricula.ano_censo, matricula.estado_id, municipio_id, serie_mod, total_etapa,
matricula.localizacao_id)
matricula.localizacao_id, matricula.dependencia_adm_id)
SELECT * FROM nivel_sim1
UNION ALL
......
......@@ -25,44 +25,48 @@ CREATE TABLE matricula_por_localizacao AS (
WITH
day_count AS
(SELECT count(*) as dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
(SELECT count(*) as dia_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
dependencia_adm_id
FROM matricula
WHERE tipo<=3 AND dependencia_adm_id < 4 AND ano_censo >= 2017 AND
(turma_turno_id IN (1, 2, 99) OR turma_turno_id IS null)
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
),
night_count AS
(SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
(SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id,
dependencia_adm_id
FROM matricula
WHERE tipo<=3 AND dependencia_adm_id < 4 AND ano_censo >= 2017 AND turma_turno_id = 3
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id
GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id
)
SELECT matricula.ano_censo, matricula.estado_id, matricula.municipio_id,
matricula.serie_ano_id, COALESCE(dia_total, 0) AS dia_total,
COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id
COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id, matricula.dependencia_adm_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 >= 2017 AND matricula.serie_ano_id IS NOT NULL
AND matricula.tipo <= 3 AND matricula.dependencia_adm_id < 4
GROUP BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.serie_ano_id, dia_total,
noite_total, matricula.localizacao_id
noite_total, matricula.localizacao_id, matricula.dependencia_adm_id
);
-- Create serie mod
INSERT INTO
matricula_por_localizacao(ano_censo, estado_id, municipio_id, serie_ano_id, dia_total, noite_total,
localizacao_id)
localizacao_id, dependencia_adm_id)
SELECT
ano_censo, estado_id, municipio_id, LEFT(serie_ano_id, 1) as serie, sum(dia_total), sum(noite_total),
localizacao_id
localizacao_id, dependencia_adm_id
FROM matricula_por_localizacao
GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id;
\ No newline at end of file
GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id, dependencia_adm_id;
\ No newline at end of file
CREATE TABLE transporte AS (
WITH matricula_mod AS
(SELECT count(*) as total, matricula.regiao_id AS regiao_id, estado_id, estado.nome AS estado_nome, municipio_id,
escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural, dependencia_adm_id, dependencia_adm_priv, responsavel_transp,
ano_censo, transporte_vans_kombi, transporte_micro_onibus, transporte_onibus, transporte_bicicleta,
transporte_animal, transporte_outro, transporte_embar_0_5, transporte_embar_5_15, transporte_embar_15_35,
transporte_embar_35, transporte_trem_metro, transporte_escolar_publico
FROM matricula JOIN estado ON matricula.estado_id = estado.id
WHERE tipo <= 3
GROUP BY matricula.regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, transporte_vans_kombi,
transporte_micro_onibus, transporte_onibus, transporte_bicicleta, transporte_animal, transporte_outro,
transporte_embar_0_5, transporte_embar_5_15, transporte_embar_15_35, transporte_embar_35, transporte_trem_metro,
transporte_escolar_publico
),
matricula_mod_total AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 0 as transporte_id
FROM matricula_mod
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
transporte_publico_total AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 1 as transporte_id
FROM matricula_mod
WHERE transporte_escolar_publico = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
vans_kombi AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 2 as transporte_id
FROM matricula_mod
WHERE transporte_vans_kombi = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
micro_bus AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 3 as transporte_id
FROM matricula_mod
WHERE transporte_micro_onibus = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
bus AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 4 as transporte_id
FROM matricula_mod
WHERE transporte_onibus = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
bike AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 5 as transporte_id
FROM matricula_mod
WHERE transporte_bicicleta = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
animal_traction AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 6 as transporte_id
FROM matricula_mod
WHERE transporte_animal = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
other_vehicle AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 7 as transporte_id
FROM matricula_mod
WHERE transporte_outro = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
waterway_5 AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 8 as transporte_id
FROM matricula_mod
WHERE transporte_embar_0_5 = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
waterway_15 AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 9 as transporte_id
FROM matricula_mod
WHERE transporte_embar_5_15 = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
waterway_35 AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 10 as transporte_id
FROM matricula_mod
WHERE transporte_embar_15_35 = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
waterway_35_upper AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 11 as transporte_id
FROM matricula_mod
WHERE transporte_embar_35 = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo),
subway_train AS
(SELECT SUM(total) as total, regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo, 12 as transporte_id
FROM matricula_mod
WHERE transporte_trem_metro = 1
GROUP BY regiao_id, estado_id, estado_nome, municipio_id, escola_id, etapas_mod_ensino_segmento_id, localizacao_id, localidade_area_rural,
dependencia_adm_id, dependencia_adm_priv, responsavel_transp, ano_censo)
SELECT * FROM matricula_mod_total
UNION ALL
SELECT * FROM transporte_publico_total
UNION ALL
SELECT * FROM vans_kombi
UNION ALL
SELECT * FROM micro_bus
UNION ALL
SELECT * FROM bus
UNION ALL
SELECT * FROM bike
UNION ALL
SELECT * FROM animal_traction
UNION ALL
SELECT * FROM other_vehicle
UNION ALL
SELECT * FROM waterway_5
UNION ALL
SELECT * FROM waterway_15
UNION ALL
SELECT * FROM waterway_35
UNION ALL
SELECT * FROM waterway_35_upper
UNION ALL
SELECT * FROM subway_train
);
\ No newline at end of file