Skip to content
Snippets Groups Projects
Commit cfa84414 authored by jvfpw18's avatar jvfpw18
Browse files

Add docente_por_formacao

parent c4adf529
No related branches found
No related tags found
1 merge request!7Docente por formacao, matricula por localizacao e transporte
/*
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 COUNT(DISTINCT docente.id_docente) AS "total", 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
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
),
docente_medio AS
(SELECT COUNT(DISTINCT docente.id_docente) AS "total", 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
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
),
docente_superior AS
(SELECT COUNT(DISTINCT docente.id_docente) AS "total", 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
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
),
docente_especializacao_mestrado_doutorado AS
(SELECT COUNT(DISTINCT docente.id_docente) AS "total", 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
ORDER BY docente.ano_censo ASC, estado.nome ASC, estado.id ASC, municipio.nome ASC, municipio.id ASC
)
SELECT *
FROM docente_total
UNION ALL docente_medio
UNION ALL docente_superior
UNION ALL docente_especializacao_mestrado_doutorado;
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment