diff --git a/localoferta_ens_superior_matricula.sql b/localoferta_ens_superior_matricula.sql index 4b0a6c5c04b3a2f228018a5c473047c3f7ff05c0..ea4184343691bb63397934132836d988c3ac4cbe 100644 --- a/localoferta_ens_superior_matricula.sql +++ b/localoferta_ens_superior_matricula.sql @@ -12,13 +12,12 @@ WITH aluno_ens_superior.nome_ies AS "nome_ies", aluno_ens_superior.cod_ies AS "cod_ies", aluno_ens_superior.par_genero_aluno, localoferta_ens_superior.cod_local_oferta, localoferta_ens_superior.cod_uf AS "localoferta_cod_uf", aluno_ens_superior.par_tipo_escola_ensino_medio, localoferta_ens_superior.cod_municipio AS "localoferta_cod_municipio", localoferta_ens_superior.cod_regiao AS "localoferta_cod_regiao", - localoferta_ens_superior.nome AS "localoferta_nome", aluno_ens_superior.concluinte + localoferta_ens_superior.nome AS "localoferta_nome", aluno_ens_superior.concluinte AS "concluinte", aluno_ens_superior.cod_aluno_situacao AS "cod_aluno_situacao", aluno_ens_superior.ingressante AS "ingressante", + aluno_ens_superior.cod_curso AS "cod_curso", aluno_ens_superior.cod_nivel_academico AS "cod_nivel_academico", aluno_ens_superior.matriculado AS "matriculado" -- adicionado para poder ser consultado na api. FROM aluno_ens_superior INNER JOIN localoferta_ens_superior ON (aluno_ens_superior.ano_censo=localoferta_ens_superior.ano_censo AND aluno_ens_superior.cod_curso=localoferta_ens_superior.cod_curso) WHERE - (localoferta_ens_superior.cod_curso_polo IS NULL) AND - (aluno_ens_superior.cod_aluno_situacao = 2 OR aluno_ens_superior.cod_aluno_situacao = 6 OR aluno_ens_superior.matriculado = 1) AND - (aluno_ens_superior.cod_nivel_academico = 1) + (localoferta_ens_superior.cod_curso_polo IS NULL) ), COD_CURSO_POLO AS (SELECT aluno_ens_superior.cod_aluno, aluno_ens_superior.ano_censo, aluno_ens_superior.cod_uf_ies AS "aluno_cod_uf", @@ -31,15 +30,14 @@ WITH aluno_ens_superior.nome_ies AS "nome_ies", aluno_ens_superior.cod_ies AS "cod_ies", aluno_ens_superior.par_genero_aluno, localoferta_ens_superior.cod_local_oferta, localoferta_ens_superior.cod_uf AS "localoferta_cod_uf", aluno_ens_superior.par_tipo_escola_ensino_medio, localoferta_ens_superior.cod_municipio AS "localoferta_cod_municipio", localoferta_ens_superior.cod_regiao AS "localoferta_cod_regiao", - localoferta_ens_superior.nome AS "localoferta_nome", aluno_ens_superior.concluinte + localoferta_ens_superior.nome AS "localoferta_nome", aluno_ens_superior.concluinte AS "concluinte", aluno_ens_superior.cod_aluno_situacao AS "cod_aluno_situacao", aluno_ens_superior.ingressante AS "ingressante", + aluno_ens_superior.cod_curso AS "cod_curso", aluno_ens_superior.cod_nivel_academico AS "cod_nivel_academico", aluno_ens_superior.matriculado AS "matriculado" FROM aluno_ens_superior INNER JOIN localoferta_ens_superior ON (aluno_ens_superior.ano_censo=localoferta_ens_superior.ano_censo AND aluno_ens_superior.cod_curso_polo=localoferta_ens_superior.cod_curso_polo) WHERE - (localoferta_ens_superior.cod_curso_polo > 0) AND - (aluno_ens_superior.cod_aluno_situacao = 2 OR aluno_ens_superior.cod_aluno_situacao = 6 OR aluno_ens_superior.matriculado = 1) AND - (aluno_ens_superior.cod_nivel_academico = 1) + (localoferta_ens_superior.cod_curso_polo > 0) ) SELECT * FROM COD_CURSO UNION ALL (SELECT * FROM COD_CURSO_POLO) -); +); \ No newline at end of file diff --git a/matricula_por_localizacao.sql b/matricula_por_localizacao.sql index 1e55024220372db2c501adc6f25b082dbb016008..23d47820b05108449f3002f0f8a9cf906c46f057 100644 --- a/matricula_por_localizacao.sql +++ b/matricula_por_localizacao.sql @@ -26,46 +26,49 @@ 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, - dependencia_adm_id + dependencia_adm_id, escola_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) - 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 + (turma_turno_id IN (1, 2, 4) OR turma_turno_id IS null) + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id + ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id ), night_count AS (SELECT count(*) as noite_total, ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, - dependencia_adm_id + dependencia_adm_id, escola_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) - 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 + WHERE dependencia_adm_id < 4 AND ano_censo >= 2018 AND (tipo_atendimento_turma <= 2 OR tipo <= 3) AND + turma_turno_id = 3 + GROUP BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_id + ORDER BY ano_censo, estado_id, municipio_id, serie_ano_id, localizacao_id, dependencia_adm_id, escola_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, matricula.dependencia_adm_id + COALESCE(noite_total, 0) AS noite_total, matricula.localizacao_id, matricula.dependencia_adm_id, + matricula.escola_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 + AND matricula.dependencia_adm_id=day_count.dependencia_adm_id AND matricula.escola_id=day_count.escola_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 + AND matricula.dependencia_adm_id=night_count.dependencia_adm_id AND matricula.escola_id=night_count.escola_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 turma_turno_id <> 99 GROUP BY matricula.ano_censo, matricula.estado_id, matricula.municipio_id, matricula.serie_ano_id, dia_total, - noite_total, matricula.localizacao_id, matricula.dependencia_adm_id + noite_total, matricula.localizacao_id, matricula.dependencia_adm_id, matricula.escola_id ); -- Create serie mod INSERT INTO matricula_por_localizacao(ano_censo, estado_id, municipio_id, serie_ano_id, dia_total, noite_total, - localizacao_id, dependencia_adm_id) + localizacao_id, dependencia_adm_id, escola_id) SELECT ano_censo, estado_id, municipio_id, LEFT(serie_ano_id, 1) as serie, sum(dia_total), sum(noite_total), - localizacao_id, dependencia_adm_id + localizacao_id, dependencia_adm_id, escola_id FROM matricula_por_localizacao -GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id, dependencia_adm_id; \ No newline at end of file +GROUP BY ano_censo, estado_id, municipio_id, serie, localizacao_id, dependencia_adm_id, escola_id;