diff --git a/src/libs/db/query_exec.js b/src/libs/db/query_exec.js index 4a1745f691dec9c419a86c0450fe16be6c1bbb1d..c47c198031437648e07ea340cb073ba50cbe01b2 100644 --- a/src/libs/db/query_exec.js +++ b/src/libs/db/query_exec.js @@ -42,8 +42,6 @@ function execSqlQuery(sqlQuery, sqlQueryParams = []) { let queryStrWithParams = SqlString.format(sqlQuery, sqlQueryParams); return new Promise((resolve, reject) => { // Execute query - console.log(conn); - console.log(queryStrWithParams); conn.query(queryStrWithParams, []).then(res => { // release resources allocated for the prepared statement resolve(res.rows); diff --git a/src/libs/routes_v1/auxiliar.js b/src/libs/routes_v1/auxiliar.js index ef5389611ae2b53dce22d3c513034db5f9bf64d9..054b23ea5fba601159b9e4df6f7c91e4a5061eea 100644 --- a/src/libs/routes_v1/auxiliar.js +++ b/src/libs/routes_v1/auxiliar.js @@ -365,7 +365,7 @@ rqf.addField({ // LDE auxiliarApp.get('/', rqf.parse(), (req, res, next) => { - req.sql.field('COUNT(DISTINCT docente.id_docente)', 'total') + req.sql.field('CAST(COUNT(DISTINCT docente.id_docente) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') .from('docente') @@ -381,7 +381,7 @@ auxiliarApp.get('/', rqf.parse(), (req, res, next) => { // SimCAQ auxiliarApp.get('/count', rqf.parse(), (req, res, next) => { - req.sql.field('COUNT(DISTINCT docente.id_docente)', 'total') + req.sql.field('CAST(COUNT(DISTINCT docente.id_docente) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') .from('docente') diff --git a/src/libs/routes_v1/class.js b/src/libs/routes_v1/class.js index 4eca8cc30f9af5cc0c084bc792d26e55d4b2968d..177889e1999fb07489c54a6a8435ccb12725cb03 100644 --- a/src/libs/routes_v1/class.js +++ b/src/libs/routes_v1/class.js @@ -388,7 +388,7 @@ rqfCount.addField({ classApp.get('/', rqfCount.parse(), (req, res, next) => { - req.sql.field('COUNT(turma.id)', 'total') + req.sql.field('CAST(COUNT(turma.id) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('turma.ano_censo', 'year') .from('turma') diff --git a/src/libs/routes_v1/classCount.js b/src/libs/routes_v1/classCount.js index ffdbe34fb15ee4df7312a7d8b45fb2b286a04bab..6e43ecdbc22505f749fa2dd6ccb60543255174e2 100644 --- a/src/libs/routes_v1/classCount.js +++ b/src/libs/routes_v1/classCount.js @@ -359,7 +359,7 @@ function addZeroFields(result) { classCountApp.get('/count', rqf.parse(), (req, res, next) => { req.sql.field("'Brasil'", 'name') .field('turma.ano_censo', 'year') - .field('AVG(turma.num_matricula)', 'average') + .field('CAST(AVG(turma.num_matricula) AS INTEGER)', 'average') .field('MEDIAN(turma.num_matricula)', 'median') .field('STDDEV_POP(turma.num_matricula)', 'stddev') .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt') diff --git a/src/libs/routes_v1/classroom.js b/src/libs/routes_v1/classroom.js index 8e2b6a7ef4a826386e0ef04d431a4f0396b18eb0..a151cf4960b16a122e667b82b81c0420388d090f 100644 --- a/src/libs/routes_v1/classroom.js +++ b/src/libs/routes_v1/classroom.js @@ -244,7 +244,7 @@ rqf.addField({ classroomApp.get('/', cache('15 day'), rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('escola') - .field('SUM(escola.qtde_salas_utilizadas_dentro)', 'total') + .field('CAST(SUM(escola.qtde_salas_utilizadas_dentro) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .group('escola.ano_censo') diff --git a/src/libs/routes_v1/classroomCount.js b/src/libs/routes_v1/classroomCount.js index a1dbc69cfedcf13265c49baa6020a01cde7e4ab9..bbd30857aae6dc874ef505e13b51bdb9cb1d6784 100644 --- a/src/libs/routes_v1/classroomCount.js +++ b/src/libs/routes_v1/classroomCount.js @@ -303,8 +303,8 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => { req.dims.school_year = true; req.dims.location = true; - req.sql.field('sum(dia_total)', 'total_day') - .field('sum(noite_total)', 'total_night') + req.sql.field('CAST(sum(dia_total) AS INTEGER)', 'total_day') + .field('CAST(sum(noite_total) AS INTEGER)', 'total_night') .field("'Brasil'", 'name') .field('matricula_por_localizacao.ano_censo', 'year') .from('matricula_por_localizacao') @@ -352,7 +352,7 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => { req.dims.location = true; req.dims.school_building = true; - req.sql.field('SUM(escola.qtde_salas_utilizadas_dentro)', 'total') + req.sql.field('CAST(SUM(escola.qtde_salas_utilizadas_dentro) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .from('escola') @@ -412,7 +412,7 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => { req.dims.state = true; req.dims.city = true; req.dims.formation_level = true; - req.sql.field('count(distinct docente_por_formacao.id_docente)', 'total') + req.sql.field('CAST(count(distinct docente_por_formacao.id_docente) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente_por_formacao.ano_censo', 'year') .from('docente_por_formacao') @@ -432,7 +432,7 @@ classroomCountApp.post('/', rqf.parse(), (req, res, next) => { req.dims.city = true; req.dims.education_level_short = true; req.dims.integral_time = true; - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field('matricula.ano_censo', 'year') .from('matricula') .group('matricula.ano_censo') diff --git a/src/libs/routes_v1/courseCount.js b/src/libs/routes_v1/courseCount.js index 404ed2eb09b56efe5b6bd1caaa643ca1e225d3a8..13a0009ac349ae90a7e0869a18d17d26d06824db 100644 --- a/src/libs/routes_v1/courseCount.js +++ b/src/libs/routes_v1/courseCount.js @@ -713,7 +713,7 @@ rqf.addField({ courseCountApp.get('/count_by_name', rqfMapfor.parse(), (req, res, next) => { req.sql.from('localoferta_ens_superior') - .field('COUNT(DISTINCT localoferta_ens_superior.cod_curso)', 'total') + .field('CAST(COUNT(DISTINCT localoferta_ens_superior.cod_curso) AS INTEGER)', 'total') .field('localoferta_ens_superior.ano_censo', 'year') .join ('curso_ens_superior ON (localoferta_ens_superior.cod_curso = curso_ens_superior.cod_curso) AND (localoferta_ens_superior.ano_censo = curso_ens_superior.ano_censo)') .where('curso_ens_superior.cod_nivel_academico = 1') @@ -737,7 +737,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { if ("university" in req.dims || "universityLocalOffer" in req.dims) { req.sql.from('curso_ens_superior') .field('curso_ens_superior.ano_censo', 'year') - .field('COUNT(localoferta_ens_superior.cod_local_oferta)', 'total') + .field('CAST(COUNT(localoferta_ens_superior.cod_local_oferta) AS INTEGER)', 'total') .where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL') .where('curso_ens_superior.cod_nivel_academico = 1') .group('curso_ens_superior.ano_censo') @@ -746,7 +746,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { } else { req.sql.from('curso_ens_superior') .field('curso_ens_superior.ano_censo', 'year') - .field('COUNT(localoferta_ens_superior.cod_local_oferta)', 'total') + .field('CAST(COUNT(localoferta_ens_superior.cod_local_oferta) AS INTEGER)', 'total') .field('localoferta_ens_superior.cod_ies', 'university_id') .field('curso_ens_superior.nome_ies', 'university_name') .where('curso_ens_superior.tipo_atributo_ingresso <> 1 OR curso_ens_superior.tipo_atributo_ingresso is NULL') @@ -761,7 +761,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { ("state" in req.filter) || ("city" in req.filter) || ("microregion" in req.filter) || ("mesoregion" in req.filter) || ("region" in req.filter) ) { if ("course" in req.dims){ req.sql.from('curso_ens_superior') - .field('COUNT(*)', 'total') + .field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('curso_ens_superior.ano_censo', 'year') .group('curso_ens_superior.ano_censo') @@ -770,7 +770,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { } else{ req.sql.from('curso_ens_superior') - .field('COUNT(DISTINCT curso_ens_superior.cod_curso)', 'total') + .field('CAST(COUNT(DISTINCT curso_ens_superior.cod_curso) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('curso_ens_superior.ano_censo', 'year') .group('curso_ens_superior.ano_censo') @@ -781,7 +781,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { } else if ("university" in req.dims || "universityLocalOffer" in req.dims) { req.sql.from('curso_ens_superior') - .field('COUNT(curso_ens_superior.cod_curso)', 'total') + .field('CAST(COUNT(curso_ens_superior.cod_curso) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('curso_ens_superior.ano_censo', 'year') .group('curso_ens_superior.cod_ies') @@ -792,7 +792,7 @@ courseCountApp.get('/', rqf.parse(), (req, res, next) => { .where('curso_ens_superior.cod_nivel_academico = 1'); } else { req.sql.from('curso_ens_superior') - .field('COUNT(curso_ens_superior.cod_curso)', 'total') + .field('CAST(COUNT(curso_ens_superior.cod_curso) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('curso_ens_superior.ano_censo', 'year') .group('curso_ens_superior.ano_censo') diff --git a/src/libs/routes_v1/courseStudents.js b/src/libs/routes_v1/courseStudents.js index 77180cb2b23489df7f2ebf74c57cc0471fddbc3e..e58728f38eeadf2372db5d5fcaf0d4ee1848d8ea 100644 --- a/src/libs/routes_v1/courseStudents.js +++ b/src/libs/routes_v1/courseStudents.js @@ -176,9 +176,9 @@ rqf.addField({ courseStudentsApp.get('/', rqf.parse(), (req, res, next) => { req.sql.field("curso_ens_superior.ano_censo", "year") - .field("SUM(curso_ens_superior.quantidade_inscritos_total)", "inscritos_total") - .field("SUM(curso_ens_superior.quantidade_vagas_totais)", "vagas_totais") - .field("SUM(curso_ens_superior.quantidade_ingresso_curso)", "ingresso_curso") + .field("CAST(SUM(curso_ens_superior.quantidade_inscritos_total) AS INTEGER)", "inscritos_total") + .field("CAST(SUM(curso_ens_superior.quantidade_vagas_totais) AS INTEGER)", "vagas_totais") + .field("CAST(SUM(curso_ens_superior.quantidade_ingresso_curso) AS INTEGER)", "ingresso_curso") .from("curso_ens_superior") .join("ies_ens_superior ON curso_ens_superior.ano_censo = ies_ens_superior.ano_censo AND curso_ens_superior.cod_ies = ies_ens_superior.cod_ies") .where("curso_ens_superior.cod_nivel_academico = 1") diff --git a/src/libs/routes_v1/cub.js b/src/libs/routes_v1/cub.js index cfc2848a19ef2f831c6562a89d5fd5ea7f938b22..6908705e97ee310d0546570f3a7dec01631d58ca 100644 --- a/src/libs/routes_v1/cub.js +++ b/src/libs/routes_v1/cub.js @@ -173,7 +173,7 @@ cubApp.get('/last_state_values', rqf.parse(), rqf.build(), (req, res, next) => { ) .join('estado', null, 'cub.estado_id = estado.id') , "states") - .field('AVG(states.preco)', 'preco') + .field('CAST(AVG(states.preco) AS INTEGER)', 'preco') .field("'BR'", 'sigla_uf') .field('states.tipo_preco') .group('states.tipo_preco') @@ -200,7 +200,7 @@ cubApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('cub') .field("'BR'", 'sigla_uf') .field("cub.tipo_preco", 'tipo_preco') - .field('AVG(cub.preco)', 'preco') + .field('CAST(AVG(cub.preco) AS INTEGER)', 'preco') .join('estado', null, 'cub.estado_id=estado.id') .group('cub.ano_censo') .group('cub.mes_censo') diff --git a/src/libs/routes_v1/dailyChargeAmount.js b/src/libs/routes_v1/dailyChargeAmount.js index 4af6cb7d378442e789962ab5fe86d6dea1ed6776..ae376e317b11bea706ecda527642268b9d455d0e 100644 --- a/src/libs/routes_v1/dailyChargeAmount.js +++ b/src/libs/routes_v1/dailyChargeAmount.js @@ -357,7 +357,7 @@ dailyChargeAmountApp.get('/', rqf.parse(), (req, res, next) => { req.sql.from('turma') .field('turma.ano_censo', 'year') .field('turma.etapa_resumida', 'education_level_short_id') - .field('AVG(turma.duracao_turma)/60.0', 'average_class_duration') + .field('CAST(AVG(turma.duracao_turma)/60.0 AS INTEGER)', 'average_class_duration') .field('MEDIAN(turma.duracao_turma)/60.0', 'median_class_duration') .field('STDDEV_SAMP(turma.duracao_turma)/60.0', 'std_class_duration') .field('QUANTILE(turma.duracao_turma, 0.25)/60.0', 'fstqt_class_duration') @@ -425,7 +425,7 @@ dailyChargeAmountApp.get('/average', rqf.parse(), rqf.build(), (req, res, next) let tableG = baseQ.clone(); tableG.from('turma') - .field('1+COUNT(*)', 'counter') + .field('1+CAST(COUNT(*) AS INTEGER)', 'counter') .field('etapas_mod_ensino_segmento_id') .where('((turma.tipo_turma_id <= 3 AND turma.tipo_atendimento_id is NULL) OR (turma.tipo_atendimento_id <= 2 AND turma.tipo_turma_id is NULL))') .group('etapas_mod_ensino_segmento_id') @@ -433,7 +433,7 @@ dailyChargeAmountApp.get('/average', rqf.parse(), rqf.build(), (req, res, next) let joinRG = squel.select(); joinRG.from(tableR, 'R') .field('R.etapas_mod_ensino_segmento_id') - .field('AVG(1.0*R.duracao_turma)/60', 'median_value') + .field('CAST(AVG(1.0*R.duracao_turma)/60 AS INTEGER)', 'median_value') .join(tableG, 'G', 'R.etapas_mod_ensino_segmento_id = G.etapas_mod_ensino_segmento_id AND R.rowNo BETWEEN G.counter/2 AND G.counter/2+G.counter%2') .group('R.etapas_mod_ensino_segmento_id') @@ -442,8 +442,8 @@ dailyChargeAmountApp.get('/average', rqf.parse(), rqf.build(), (req, res, next) .from(joinRG, 'm') .field('turma.ano_censo', 'year') .field('turma.etapas_mod_ensino_segmento_id', 'education_level_mod_id') - .field('AVG(turma.duracao_turma)/60.0', 'average_class_duration') - .field('AVG(m.median_value)', 'median_class_duration') + .field('CAST(AVG(turma.duracao_turma)/60.0 AS INTEGER)', 'average_class_duration') + .field('CAST(AVG(m.median_value) AS INTEGER)', 'median_class_duration') .field('STDDEV_SAMP(turma.duracao_turma)/60.0', 'std_class_duration') .field('QUANTILE(turma.duracao_turma, 0.25)/60.0', 'fstqt_class_duration') .field('QUANTILE(turma.duracao_turma, 0.75)/60.0', 'thdqt_class_duration') diff --git a/src/libs/routes_v1/disciplines.js b/src/libs/routes_v1/disciplines.js index 63b05f327152d7deaa4122d05fbbc0f80355a5a4..649125cc5220ce9d9410489177cf5bf8eaf79f26 100644 --- a/src/libs/routes_v1/disciplines.js +++ b/src/libs/routes_v1/disciplines.js @@ -465,65 +465,65 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { delete req.dims.discipline; req.tmp_discipline = true; - req.sql.field('SUM(n_disc)', 'total') - .field('SUM(n_disc_adequada)', 'total_suitable') + req.sql.field('CAST(SUM(n_disc) AS INTEGER)', 'total') + .field('CAST(SUM(n_disc_adequada) AS INTEGER)', 'total_suitable') - .field('SUM(quimica_not_null)', 'total_quimica') - .field('SUM(adequacao_quimica)', 'total_suitable_quimica') + .field('CAST(SUM(quimica_not_null) AS INTEGER)', 'total_quimica') + .field('CAST(SUM(adequacao_quimica) AS INTEGER)', 'total_suitable_quimica') - .field('SUM(fisica_not_null)', 'total_fisica') - .field('SUM(adequacao_fisica)', 'total_suitable_fisica') + .field('CAST(SUM(fisica_not_null) AS INTEGER)', 'total_fisica') + .field('CAST(SUM(adequacao_fisica) AS INTEGER)', 'total_suitable_fisica') - .field('SUM(matematica_not_null)', 'total_matematica') - .field('SUM(adequacao_matematica)', 'total_suitable_matematica') + .field('CAST(SUM(matematica_not_null) AS INTEGER)', 'total_matematica') + .field('CAST(SUM(adequacao_matematica) AS INTEGER)', 'total_suitable_matematica') - .field('SUM(biologia_not_null)', 'total_biologia') - .field('SUM(adequacao_biologia)', 'total_suitable_biologia') + .field('CAST(SUM(biologia_not_null) AS INTEGER)', 'total_biologia') + .field('CAST(SUM(adequacao_biologia) AS INTEGER)', 'total_suitable_biologia') - .field('SUM(ciencias_not_null)', 'total_ciencias') - .field('SUM(adequacao_ciencias)', 'total_suitable_ciencias') + .field('CAST(SUM(ciencias_not_null) AS INTEGER)', 'total_ciencias') + .field('CAST(SUM(adequacao_ciencias) AS INTEGER)', 'total_suitable_ciencias') - .field('SUM(lingua_portuguesa_not_null)', 'total_lingua_portuguesa') - .field('SUM(adequacao_lingua_portuguesa)', 'total_suitable_lingua_portuguesa') + .field('CAST(SUM(lingua_portuguesa_not_null) AS INTEGER)', 'total_lingua_portuguesa') + .field('CAST(SUM(adequacao_lingua_portuguesa) AS INTEGER)', 'total_suitable_lingua_portuguesa') - .field('SUM(lingua_inglesa_not_null)', 'total_lingua_inglesa') - .field('SUM(adequacao_lingua_inglesa)', 'total_suitable_lingua_inglesa') + .field('CAST(SUM(lingua_inglesa_not_null) AS INTEGER)', 'total_lingua_inglesa') + .field('CAST(SUM(adequacao_lingua_inglesa) AS INTEGER)', 'total_suitable_lingua_inglesa') - .field('SUM(lingua_espanhola_not_null)', 'total_lingua_espanhola') - .field('SUM(adequacao_lingua_espanhola)', 'total_suitable_lingua_espanhola') + .field('CAST(SUM(lingua_espanhola_not_null) AS INTEGER)', 'total_lingua_espanhola') + .field('CAST(SUM(adequacao_lingua_espanhola) AS INTEGER)', 'total_suitable_lingua_espanhola') - .field('SUM(lingua_francesa_not_null)', 'total_lingua_francesa') - .field('SUM(adequacao_lingua_francesa)', 'total_suitable_lingua_francesa') + .field('CAST(SUM(lingua_francesa_not_null) AS INTEGER)', 'total_lingua_francesa') + .field('CAST(SUM(adequacao_lingua_francesa) AS INTEGER)', 'total_suitable_lingua_francesa') - .field('SUM(lingua_outra_not_null)', 'total_lingua_outra') - .field('SUM(adequacao_lingua_outra)', 'total_suitable_lingua_outra') + .field('CAST(SUM(lingua_outra_not_null) AS INTEGER)', 'total_lingua_outra') + .field('CAST(SUM(adequacao_lingua_outra) AS INTEGER)', 'total_suitable_lingua_outra') - .field('SUM(lingua_indigena_not_null)', 'total_lingua_indigena') - .field('SUM(adequacao_lingua_indigena)', 'total_suitable_lingua_indigena') + .field('CAST(SUM(lingua_indigena_not_null) AS INTEGER)', 'total_lingua_indigena') + .field('CAST(SUM(adequacao_lingua_indigena) AS INTEGER)', 'total_suitable_lingua_indigena') - .field('SUM(artes_not_null)', 'total_artes') - .field('SUM(adequacao_artes)', 'total_suitable_artes') + .field('CAST(SUM(artes_not_null) AS INTEGER)', 'total_artes') + .field('CAST(SUM(adequacao_artes) AS INTEGER)', 'total_suitable_artes') - .field('SUM(educacao_fisica_not_null)', 'total_educacao_fisica') - .field('SUM(adequacao_educacao_fisica)', 'total_suitable_educacao_fisica') + .field('CAST(SUM(educacao_fisica_not_null) AS INTEGER)', 'total_educacao_fisica') + .field('CAST(SUM(adequacao_educacao_fisica) AS INTEGER)', 'total_suitable_educacao_fisica') - .field('SUM(historia_not_null)', 'total_historia') - .field('SUM(adequacao_historia)', 'total_suitable_historia') + .field('CAST(SUM(historia_not_null) AS INTEGER)', 'total_historia') + .field('CAST(SUM(adequacao_historia) AS INTEGER)', 'total_suitable_historia') - .field('SUM(geografia_not_null)', 'total_geografia') - .field('SUM(adequacao_geografia)', 'total_suitable_geografia') + .field('CAST(SUM(geografia_not_null) AS INTEGER)', 'total_geografia') + .field('CAST(SUM(adequacao_geografia) AS INTEGER)', 'total_suitable_geografia') - .field('SUM(filosofia_not_null)', 'total_filosofia') - .field('SUM(adequacao_filosofia)', 'total_suitable_filosofia') + .field('CAST(SUM(filosofia_not_null) AS INTEGER)', 'total_filosofia') + .field('CAST(SUM(adequacao_filosofia) AS INTEGER)', 'total_suitable_filosofia') - .field('SUM(ensino_religioso_not_null)', 'total_ensino_religioso') - .field('SUM(adequacao_ensino_religioso)', 'total_suitable_ensino_religioso') + .field('CAST(SUM(ensino_religioso_not_null) AS INTEGER)', 'total_ensino_religioso') + .field('CAST(SUM(adequacao_ensino_religioso) AS INTEGER)', 'total_suitable_ensino_religioso') - .field('SUM(estudos_sociais_not_null)', 'total_estudos_sociais') - .field('SUM(adequacao_estudos_sociais)', 'total_suitable_estudos_sociais') + .field('CAST(SUM(estudos_sociais_not_null) AS INTEGER)', 'total_estudos_sociais') + .field('CAST(SUM(adequacao_estudos_sociais) AS INTEGER)', 'total_suitable_estudos_sociais') - .field('SUM(sociologia_not_null)', 'total_sociologia') - .field('SUM(adequacao_sociologia)', 'total_suitable_sociologia') + .field('CAST(SUM(sociologia_not_null) AS INTEGER)', 'total_sociologia') + .field('CAST(SUM(adequacao_sociologia) AS INTEGER)', 'total_suitable_sociologia') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') @@ -538,8 +538,8 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { else if ('discipline' in req.filter) { const disciplines = ['quimica', 'fisica', 'matematica', 'biologia', 'ciencias', 'lingua_portuguesa', 'lingua_inglesa', 'lingua_espanhola', 'lingua_francesa', 'lingua_outra', 'lingua_indigena', 'artes', 'educacao_fisica', 'historia', 'geografia', 'filosofia', 'ensino_religioso', 'estudos_sociais', 'sociologia'] - let totalQuery = 'SUM(' - let totalSuitableQuery = 'SUM(' + let totalQuery = 'CAST(SUM(' + let totalSuitableQuery = 'CAST(SUM(' if (!(req.filter.discipline instanceof Array)) req.filter.discipline = [req.filter.discipline] @@ -547,8 +547,8 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { totalQuery += disciplines[d - 1] + '_not_null + ' totalSuitableQuery += 'adequacao_' + disciplines[d - 1] + ' + ' }) - totalQuery = totalQuery.slice(0, -2) + ')' - totalSuitableQuery = totalSuitableQuery.slice(0, -2) + ')' + totalQuery = totalQuery.slice(0, -2) + ') AS INTEGER)' + totalSuitableQuery = totalSuitableQuery.slice(0, -2) + ') AS INTEGER)' delete req.filter.discipline; @@ -566,8 +566,8 @@ disciplinesApp.get('/', rqf.parse(), (req, res, next) => { docente.etapas_mod_ensino_segmento_id <> 6 AND docente.etapas_mod_ensino_segmento_id <> 12'); } else { - req.sql.field('SUM(n_disc)', 'total') - .field('SUM(n_disc_adequada)', 'total_suitable') + req.sql.field('CAST(SUM(n_disc) AS INTEGER)', 'total') + .field('CAST(SUM(n_disc_adequada) AS INTEGER)', 'total_suitable') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') .from('docente') diff --git a/src/libs/routes_v1/educationalBudget.js b/src/libs/routes_v1/educationalBudget.js index c6fb724eabe34cd5d14d5ad4c5a918b051832915..819045a98ac61e6165e48d978eb3ab99a6a0b06b 100644 --- a/src/libs/routes_v1/educationalBudget.js +++ b/src/libs/routes_v1/educationalBudget.js @@ -236,7 +236,7 @@ educationalBudget.get('/id', rqfId.parse(), rqfId.build(), (req, res, next) => { //Return count id grouop by entidade_federativa educationalBudget.get('/finish', rqf.parse(), (req, res, next) => { - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field('orcamento_educacional.entidade_federativa', 'entidade_federativa') .from('orcamento_educacional') .group('orcamento_educacional.entidade_federativa') diff --git a/src/libs/routes_v1/employees.js b/src/libs/routes_v1/employees.js index 1ef4e7fd0a3b29ae0b2725b1cbdc3cd1b318f7e4..9323b323504cdbe908806ea3fa1db8c4aa208b0c 100644 --- a/src/libs/routes_v1/employees.js +++ b/src/libs/routes_v1/employees.js @@ -578,7 +578,7 @@ employeesApp.get('/', rqfSchool.parse(), (req, res, next) => { if ("function" in req.dims) { delete req.dims.function; - req.sql.field('SUM(funcionarios_por_escola.total)', 'qtde_null') + req.sql.field('CAST(SUM(funcionarios_por_escola.total) AS INTEGER)', 'qtde_null') .field('funcionarios_por_escola.ano_censo', 'year') .from('funcionarios_por_escola') .group('funcionarios_por_escola.ano_censo') @@ -586,7 +586,7 @@ employeesApp.get('/', rqfSchool.parse(), (req, res, next) => { .where('funcionarios_por_escola.ano_censo <> 2009 or funcionarios_por_escola.estado_id <> 42') } else { delete req.dims.function; - req.sql.field('SUM(funcionarios_por_escola.total)', 'total') + req.sql.field('CAST(SUM(funcionarios_por_escola.total) AS INTEGER)', 'total') .field('funcionarios_por_escola.ano_censo', 'year') .from('funcionarios_por_escola') .group('funcionarios_por_escola.ano_censo') @@ -600,19 +600,19 @@ employeesApp.get('/', rqfSchool.parse(), (req, res, next) => { req.allTeacher = req.result; req.resetSql(); if ("function" in req.dims) { - req.sql.field('SUM(CASE WHEN escola.qt_prof_admin = 88888 THEN 0 ELSE escola.qt_prof_admin END)', 'qtde_admin') - .field('SUM(CASE WHEN escola.qtde_prof_servicos_gerais = 88888 THEN 0 ELSE escola.qtde_prof_servicos_gerais END) AS qtde_servicos_gerais') - .field('SUM(CASE WHEN escola.qtde_prof_bibliotecario = 88888 THEN 0 ELSE escola.qtde_prof_bibliotecario END)', 'qtde_bibliotecario') - .field('SUM(CASE WHEN escola.qtde_prof_saude = 88888 THEN 0 ELSE escola.qtde_prof_saude END)','qtde_saude') - .field('SUM(CASE WHEN escola.qtde_prof_coordenador = 88888 THEN 0 ELSE escola.qtde_prof_coordenador END)','qtde_coordenador') - .field('SUM(CASE WHEN escola.qtde_prof_fono = 88888 THEN 0 ELSE escola.qtde_prof_fono END)','qtde_fono') - .field('SUM(CASE WHEN escola.qtde_prof_nutricionista = 88888 THEN 0 ELSE escola.qtde_prof_nutricionista END)', 'qtde_nutricionista') - .field('SUM(CASE WHEN escola.qtde_prof_psicologo = 88888 THEN 0 ELSE escola.qtde_prof_psicologo END)', 'qtde_psicologo') - .field('SUM(CASE WHEN escola.qtde_prof_alimentacao = 88888 THEN 0 ELSE escola.qtde_prof_alimentacao END)','qtde_alimentacao') - .field('SUM(CASE WHEN escola.qtde_prof_pedagogia = 88888 THEN 0 ELSE escola.qtde_prof_pedagogia END)', 'qtde_pedagogia') - .field('SUM(CASE WHEN escola.qtde_prof_secretario = 88888 THEN 0 ELSE escola.qtde_prof_secretario END)','qtde_secretario') - .field('SUM(CASE WHEN escola.qtde_prof_seguranca = 88888 THEN 0 ELSE escola.qtde_prof_seguranca END)','qtde_seguranca') - .field('SUM(CASE WHEN escola.qtde_prof_monitores = 88888 THEN 0 ELSE escola.qtde_prof_monitores END)', 'qtde_monitores') + req.sql.field('CAST(SUM(CASE WHEN escola.qt_prof_admin = 88888 THEN 0 ELSE escola.qt_prof_admin END) AS INTEGER)', 'qtde_admin') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_servicos_gerais = 88888 THEN 0 ELSE escola.qtde_prof_servicos_gerais END) AS INTEGER) AS qtde_servicos_gerais') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_bibliotecario = 88888 THEN 0 ELSE escola.qtde_prof_bibliotecario END) AS INTEGER)', 'qtde_bibliotecario') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_saude = 88888 THEN 0 ELSE escola.qtde_prof_saude END) AS INTEGER)','qtde_saude') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_coordenador = 88888 THEN 0 ELSE escola.qtde_prof_coordenador END) AS INTEGER)','qtde_coordenador') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_fono = 88888 THEN 0 ELSE escola.qtde_prof_fono END) AS INTEGER)','qtde_fono') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_nutricionista = 88888 THEN 0 ELSE escola.qtde_prof_nutricionista END) AS INTEGER)', 'qtde_nutricionista') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_psicologo = 88888 THEN 0 ELSE escola.qtde_prof_psicologo END) AS INTEGER)', 'qtde_psicologo') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_alimentacao = 88888 THEN 0 ELSE escola.qtde_prof_alimentacao END) AS INTEGER)','qtde_alimentacao') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_pedagogia = 88888 THEN 0 ELSE escola.qtde_prof_pedagogia END) AS INTEGER)', 'qtde_pedagogia') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_secretario = 88888 THEN 0 ELSE escola.qtde_prof_secretario END) AS INTEGER)','qtde_secretario') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_seguranca = 88888 THEN 0 ELSE escola.qtde_prof_seguranca END) AS INTEGER)','qtde_seguranca') + .field('CAST(SUM(CASE WHEN escola.qtde_prof_monitores = 88888 THEN 0 ELSE escola.qtde_prof_monitores END) AS INTEGER)', 'qtde_monitores') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .from('escola') @@ -621,7 +621,7 @@ employeesApp.get('/', rqfSchool.parse(), (req, res, next) => { .where('(escola.situacao_funcionamento_pareada = 1) AND (escola.ensino_regular = 1 OR escola.ensino_eja = 1 OR escola.educacao_profissional = 1) AND (escola.dependencia_adm_id = 2 OR escola.dependencia_adm_id = 3 OR escola.dependencia_adm_id = 4) and ano_censo >= 2019'); delete req.dims.function; } else { - req.sql.field('SUM(CASE WHEN escola.qt_prof_admin = 88888 THEN 0 ELSE escola.qt_prof_admin END) + SUM(CASE WHEN escola.qtde_prof_servicos_gerais = 88888 THEN 0 ELSE escola.qtde_prof_servicos_gerais END) + SUM(CASE WHEN escola.qtde_prof_bibliotecario = 88888 THEN 0 ELSE escola.qtde_prof_bibliotecario END) + SUM(CASE WHEN escola.qtde_prof_saude = 88888 THEN 0 ELSE escola.qtde_prof_saude END) + SUM(CASE WHEN escola.qtde_prof_coordenador = 88888 THEN 0 ELSE escola.qtde_prof_coordenador END) + SUM(CASE WHEN escola.qtde_prof_fono = 88888 THEN 0 ELSE escola.qtde_prof_fono END) + SUM(CASE WHEN escola.qtde_prof_nutricionista = 88888 THEN 0 ELSE escola.qtde_prof_nutricionista END) + SUM(CASE WHEN escola.qtde_prof_psicologo = 88888 THEN 0 ELSE escola.qtde_prof_psicologo END) + SUM(CASE WHEN escola.qtde_prof_alimentacao = 88888 THEN 0 ELSE escola.qtde_prof_alimentacao END) + SUM(CASE WHEN escola.qtde_prof_pedagogia = 88888 THEN 0 ELSE escola.qtde_prof_pedagogia END) + SUM(CASE WHEN escola.qtde_prof_secretario = 88888 THEN 0 ELSE escola.qtde_prof_secretario END) + SUM(CASE WHEN escola.qtde_prof_seguranca = 88888 THEN 0 ELSE escola.qtde_prof_seguranca END) + SUM(CASE WHEN escola.qtde_prof_monitores = 88888 THEN 0 ELSE escola.qtde_prof_monitores END)', 'total') + req.sql.field('CAST(SUM(CASE WHEN escola.qt_prof_admin = 88888 THEN 0 ELSE escola.qt_prof_admin END) + SUM(CASE WHEN escola.qtde_prof_servicos_gerais = 88888 THEN 0 ELSE escola.qtde_prof_servicos_gerais END) + SUM(CASE WHEN escola.qtde_prof_bibliotecario = 88888 THEN 0 ELSE escola.qtde_prof_bibliotecario END) + SUM(CASE WHEN escola.qtde_prof_saude = 88888 THEN 0 ELSE escola.qtde_prof_saude END) + SUM(CASE WHEN escola.qtde_prof_coordenador = 88888 THEN 0 ELSE escola.qtde_prof_coordenador END) + SUM(CASE WHEN escola.qtde_prof_fono = 88888 THEN 0 ELSE escola.qtde_prof_fono END) + SUM(CASE WHEN escola.qtde_prof_nutricionista = 88888 THEN 0 ELSE escola.qtde_prof_nutricionista END) + SUM(CASE WHEN escola.qtde_prof_psicologo = 88888 THEN 0 ELSE escola.qtde_prof_psicologo END) + SUM(CASE WHEN escola.qtde_prof_alimentacao = 88888 THEN 0 ELSE escola.qtde_prof_alimentacao END) + SUM(CASE WHEN escola.qtde_prof_pedagogia = 88888 THEN 0 ELSE escola.qtde_prof_pedagogia END) + SUM(CASE WHEN escola.qtde_prof_secretario = 88888 THEN 0 ELSE escola.qtde_prof_secretario END) + SUM(CASE WHEN escola.qtde_prof_seguranca = 88888 THEN 0 ELSE escola.qtde_prof_seguranca END) + SUM(CASE WHEN escola.qtde_prof_monitores = 88888 THEN 0 ELSE escola.qtde_prof_monitores END) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .from('escola') diff --git a/src/libs/routes_v1/enrollment.js b/src/libs/routes_v1/enrollment.js index 872593852ad783b18d3491405184d63132558872..d142d244331be8057a419d53ea135f202ec79d0c 100644 --- a/src/libs/routes_v1/enrollment.js +++ b/src/libs/routes_v1/enrollment.js @@ -793,20 +793,20 @@ enrollmentApp.get('/', rqf.parse(), (req, res, next) => { if('pee_por_categoria' in req.dims){ delete req.dims.pee_por_categoria req.pee_por_categoria = true - req.sql.field('SUM(CASE WHEN cegueira = true THEN 1 ELSE 0 END)', 'Cegueira') - .field('SUM(CASE WHEN baixa_visao = true THEN 1 ELSE 0 END)', 'Baixa visão') - .field('SUM(CASE WHEN surdez = true THEN 1 ELSE 0 END)', 'Surdez') - .field('SUM(CASE WHEN deficiencia_auditiva = true THEN 1 ELSE 0 END)', 'Deficiência auditiva') - .field('SUM(CASE WHEN surdo_cegueira = true THEN 1 ELSE 0 END)', 'Surdocegueira') - .field('SUM(CASE WHEN deficiencia_fisica = true THEN 1 ELSE 0 END)', 'Deficiência fÃsica') - .field('SUM(CASE WHEN deficiencia_intelectual = true THEN 1 ELSE 0 END)', 'Deficiência intelectual') - .field('SUM(CASE WHEN deficiencia_multiplas = true THEN 1 ELSE 0 END)', 'Deficiências múltiplas') - .field('SUM(CASE WHEN autismo = true THEN 1 ELSE 0 END)', 'Autismo') - .field('SUM(CASE WHEN transtorno_espectro_autista = true THEN 1 ELSE 0 END)', 'Transtorno do Espectro Autista (TEA)') - .field('SUM(CASE WHEN sindrome_asperger = true THEN 1 ELSE 0 END)', 'SÃndrome de Asperger') - .field('SUM(CASE WHEN sindrome_rett = true THEN 1 ELSE 0 END)', 'SÃndrome de Rett') - .field('SUM(CASE WHEN transtorno_desintegrativo_da_infancia = true THEN 1 ELSE 0 END)', 'Transtorno desintegrativo da infância') - .field('SUM(CASE WHEN superdotado = true THEN 1 ELSE 0 END)', 'Altas habilidades / Superdotação') + req.sql.field('CAST(SUM(CASE WHEN cegueira = true THEN 1 ELSE 0 END) AS INTEGER)', 'Cegueira') + .field('CAST(SUM(CASE WHEN baixa_visao = true THEN 1 ELSE 0 END) AS INTEGER)', 'Baixa visão') + .field('CAST(SUM(CASE WHEN surdez = true THEN 1 ELSE 0 END) AS INTEGER)', 'Surdez') + .field('CAST(SUM(CASE WHEN deficiencia_auditiva = true THEN 1 ELSE 0 END) AS INTEGER)', 'Deficiência auditiva') + .field('CAST(SUM(CASE WHEN surdo_cegueira = true THEN 1 ELSE 0 END) AS INTEGER)', 'Surdocegueira') + .field('CAST(SUM(CASE WHEN deficiencia_fisica = true THEN 1 ELSE 0 END) AS INTEGER)', 'Deficiência fÃsica') + .field('CAST(SUM(CASE WHEN deficiencia_intelectual = true THEN 1 ELSE 0 END) AS INTEGER)', 'Deficiência intelectual') + .field('CAST(SUM(CASE WHEN deficiencia_multiplas = true THEN 1 ELSE 0 END) AS INTEGER)', 'Deficiências múltiplas') + .field('CAST(SUM(CASE WHEN autismo = true THEN 1 ELSE 0 END) AS INTEGER)', 'Autismo') + .field('CAST(SUM(CASE WHEN transtorno_espectro_autista = true THEN 1 ELSE 0 END) AS INTEGER)', 'Transtorno do Espectro Autista (TEA)') + .field('CAST(SUM(CASE WHEN sindrome_asperger = true THEN 1 ELSE 0 END) AS INTEGER)', 'SÃndrome de Asperger') + .field('CAST(SUM(CASE WHEN sindrome_rett = true THEN 1 ELSE 0 END) AS INTEGER)', 'SÃndrome de Rett') + .field('CAST(SUM(CASE WHEN transtorno_desintegrativo_da_infancia = true THEN 1 ELSE 0 END) AS INTEGER)', 'Transtorno desintegrativo da infância') + .field('CAST(SUM(CASE WHEN superdotado = true THEN 1 ELSE 0 END) AS INTEGER)', 'Altas habilidades / Superdotação') .field('matricula.ano_censo', 'year') .from('matricula') .group('matricula.ano_censo') @@ -814,7 +814,7 @@ enrollmentApp.get('/', rqf.parse(), (req, res, next) => { .where('((matricula.tipo<=3 OR matricula.tipo IS NULL) AND (matricula.tipo_atendimento_turma IS NULL OR matricula.tipo_atendimento_turma <= 2))'); } else{ - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field('matricula.ano_censo', 'year') .from('matricula') .group('matricula.ano_censo') @@ -852,7 +852,7 @@ enrollmentApp.get('/diagnosis', rqf.parse(), (req, res, next) => { req.dims.location = true; req.dims.adm_dependency_detailed = true; - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('matricula.ano_censo', 'year') .from('matricula') @@ -1071,7 +1071,7 @@ enrollmentApp.get('/projection', rqf.parse(), (req, res, next) => { req.dims.period = true; req.filter.adm_dependency = [1,2,3]; - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('matricula.ano_censo', 'year') .from('matricula') diff --git a/src/libs/routes_v1/enrollmentProjection.js b/src/libs/routes_v1/enrollmentProjection.js index 4dd92e5df7985a6bb34632dfc3b4a685c5873e64..76ac21c673a9f40836c6b32f1cb2798ac6a451b3 100644 --- a/src/libs/routes_v1/enrollmentProjection.js +++ b/src/libs/routes_v1/enrollmentProjection.js @@ -140,10 +140,10 @@ rqf.addField({ enrollmentProjectionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.field("'Brasil'", 'name') - .field('SUM(projecao_matricula_por_dependencia.urbano_dia_total)', 'urban_day_total') - .field('SUM(projecao_matricula_por_dependencia.urbano_noite_total)', 'urban_night_total') - .field('SUM(projecao_matricula_por_dependencia.rural_dia_total)', 'rural_day_total') - .field('SUM(projecao_matricula_por_dependencia.rural_noite_total)', 'rural_night_total') + .field('CAST(SUM(projecao_matricula_por_dependencia.urbano_dia_total) AS INTEGER)', 'urban_day_total') + .field('CAST(SUM(projecao_matricula_por_dependencia.urbano_noite_total) AS INTEGER)', 'urban_night_total') + .field('CAST(SUM(projecao_matricula_por_dependencia.rural_dia_total) AS INTEGER)', 'rural_day_total') + .field('CAST(SUM(projecao_matricula_por_dependencia.rural_noite_total) AS INTEGER)', 'rural_night_total') .field('projecao_matricula_por_dependencia.etapa_ensino_escola_ano_id', 'education_level_school_year_id') .field('projecao_matricula_por_dependencia.ano_censo', 'year') .from('projecao_matricula_por_dependencia') diff --git a/src/libs/routes_v1/glossEnrollmentRatio.js b/src/libs/routes_v1/glossEnrollmentRatio.js index ab57e325096c56fa71287d38b4185f29ddf5c1bf..781ddfb2d00d09d09e96ff9fde83015586679cb6 100644 --- a/src/libs/routes_v1/glossEnrollmentRatio.js +++ b/src/libs/routes_v1/glossEnrollmentRatio.js @@ -310,7 +310,7 @@ glossEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => { let glossEnrollmentRatioApp = {}; req.sql.from('matricula') - .field('count(*)', 'total') + .field('CAST(count(*) AS INTEGER)', 'total') .field('matricula.ano_censo', 'year') .group('matricula.ano_censo') .order('matricula.ano_censo') diff --git a/src/libs/routes_v1/infrastructure.js b/src/libs/routes_v1/infrastructure.js index 1ececa918e451d702b1319511a8dca0230e3eae8..e92a680de6939980fc0e2556a62b25c3af8b707d 100644 --- a/src/libs/routes_v1/infrastructure.js +++ b/src/libs/routes_v1/infrastructure.js @@ -302,7 +302,7 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { // Local de funcionamento let allSchools = req.sql.clone(); - allSchools.from('escola').field('COUNT(escola.id)', 'total') + allSchools.from('escola').field('CAST(COUNT(escola.id) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .group('escola.ano_censo') diff --git a/src/libs/routes_v1/liquidEnrollmentRatio.js b/src/libs/routes_v1/liquidEnrollmentRatio.js index 63bd91685a8df488731a267d268a929a6252a8df..ded59aec264baa675b8f67d33ae42db4858e2801 100644 --- a/src/libs/routes_v1/liquidEnrollmentRatio.js +++ b/src/libs/routes_v1/liquidEnrollmentRatio.js @@ -339,7 +339,7 @@ liquidEnrollmentRatioApp.get('/', rqf.parse(),(req, res, next) => { let liquidEnrollmentRatioApp = {}; req.sql.from('matricula') - .field('count(*)', 'total') + .field('CAST(count(*) AS INTEGER)', 'total') .field('matricula.ano_censo', 'year') .group('matricula.ano_censo') .order('matricula.ano_censo') diff --git a/src/libs/routes_v1/outOfSchool.js b/src/libs/routes_v1/outOfSchool.js index fcd57867675e0556f57c46fccc71af4cfacb787e..d1ef8153335d11b6739d90823b6ac4721c525055 100644 --- a/src/libs/routes_v1/outOfSchool.js +++ b/src/libs/routes_v1/outOfSchool.js @@ -251,7 +251,7 @@ rqf.addField({ outOfSchoolApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('pnad') - .field('SUM(pnad.peso)', 'total') + .field('CAST(SUM(pnad.peso) AS INTEGER)', 'total') .field('pnad.ano_censo', 'year') .where('pnad.escolaridade_familiar >= 1 AND pnad.escolaridade_familiar <= 4 AND pnad.frequenta_escola_creche = 4') .group('pnad.ano_censo') @@ -351,14 +351,14 @@ outOfSchoolApp.get('/simcaq', simcaqRqf.parse(), (req, res, next) => { if ('city' in req.filter && 'state' in req.filter) delete req.filter.state // use only the city filter because of the table particularities req.sql.from('populacao_fora_da_escola') - .field('SUM(populacao_fora_da_escola.pop_fora_escola)', 'total') + .field('CAST(SUM(populacao_fora_da_escola.pop_fora_escola) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('populacao_fora_da_escola.ano_censo') .group('populacao_fora_da_escola.ano_censo') .order('populacao_fora_da_escola.ano_censo'); } else { // Query in 'Brasil' level req.sql.from('populacao_fora_da_escola') - .field('SUM(populacao_fora_da_escola.pop_fora_escola)', 'total') + .field('CAST(SUM(populacao_fora_da_escola.pop_fora_escola) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('populacao_fora_da_escola.ano_censo') .where('populacao_fora_da_escola.brasil = 1') diff --git a/src/libs/routes_v1/pibpercapita.js b/src/libs/routes_v1/pibpercapita.js index c5c77a924ecaa848ab8f6cfb38e25d4bf8455121..8fb2dfb6cb4f49682d87079fc511f602e168bb5a 100644 --- a/src/libs/routes_v1/pibpercapita.js +++ b/src/libs/routes_v1/pibpercapita.js @@ -217,7 +217,7 @@ pibpercapitaApp.get('/', rqf.parse(), (req, res, next) => { .order('ibge_pib.ano_censo') } else { req.sql.from('ibge_pib') - .field('SUM(ibge_pib.pib)/SUM(ibge_pib.populacao)', 'total') + .field('CAST(SUM(ibge_pib.pib)/SUM(ibge_pib.populacao) AS INTEGER)', 'total') .field('ibge_pib.ano_censo', 'year') .group('ibge_pib.ano_censo') .order('ibge_pib.ano_censo') diff --git a/src/libs/routes_v1/population.js b/src/libs/routes_v1/population.js index fca3b0d6b309aba53aa0d9ff8e47eaf7d6f85d74..b5669ef7b9100ab7c27750305eee9b9a6f32a15a 100644 --- a/src/libs/routes_v1/population.js +++ b/src/libs/routes_v1/population.js @@ -152,7 +152,7 @@ rqf.addField({ populationApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('ibge_pib') - .field('SUM(ibge_pib.populacao)', 'total') + .field('CAST(SUM(ibge_pib.populacao) AS INTEGER)', 'total') .field('ibge_pib.ano_censo', 'year') .group('ibge_pib.ano_censo') .order('ibge_pib.ano_censo') diff --git a/src/libs/routes_v1/school.js b/src/libs/routes_v1/school.js index 768325c314d7c6e9bdd0059bd8a420880ebdf83a..70b2d240e5267ab352ac2203828612c5e2156333 100644 --- a/src/libs/routes_v1/school.js +++ b/src/libs/routes_v1/school.js @@ -679,7 +679,7 @@ schoolApp.get('/count', cache('15 day'), rqfCount.parse(), (req, res, next) => { let arrang = ["arranjo_creche", "arranjo_pre", "arranjo_fundamental_ai", "arranjo_fundamental_af", "arranjo_multietapa", "arranjo_ensino_medio", "ensino_eja", "educacao_profissional", "ensino_especial"]; req.sql.from('escola') - .field('COUNT(escola.id)', 'total') + .field('CAST(COUNT(escola.id) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .group('escola.ano_censo') diff --git a/src/libs/routes_v1/schoolInfrastructure.js b/src/libs/routes_v1/schoolInfrastructure.js index c74f0e303b10407bb56faa9eb12c86f8ed6a9419..07207e93e7f005367206c5be27b17db8e794d7ed 100644 --- a/src/libs/routes_v1/schoolInfrastructure.js +++ b/src/libs/routes_v1/schoolInfrastructure.js @@ -328,7 +328,7 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { // Local de funcionamento let allSchools = req.sql.clone(); - allSchools.from('escola').field('COUNT(escola.id)', 'total') + allSchools.from('escola').field('CAST(COUNT(escola.id) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .group('escola.ano_censo') @@ -348,7 +348,7 @@ infrastructureApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.queryIndex.allCountrySchools = req.querySet.push(allCountrySchools) - 1; let allSchoolsNotSchoolBuilding = req.sql.clone(); - allSchoolsNotSchoolBuilding.from('escola').field('COUNT(escola.id)', 'total') + allSchoolsNotSchoolBuilding.from('escola').field('CAST(COUNT(escola.id) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('escola.ano_censo', 'year') .group('escola.ano_censo') diff --git a/src/libs/routes_v1/spatial.js b/src/libs/routes_v1/spatial.js index d4f48fe8eda00fe562b60e83bf69416c81694d33..0516b8779bda9b52df836a5e08f2439eaaa1cfda 100644 --- a/src/libs/routes_v1/spatial.js +++ b/src/libs/routes_v1/spatial.js @@ -130,7 +130,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const populationQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('SUM(populacao)', 'population') + .field('CAST(SUM(populacao) AS INTEGER)', 'population') .field('ibge_populacao.ano_censo', 'census_year') .from('ibge_populacao') .where(`ibge_populacao.ano_censo IN (${populationYearQry.toString()})`) @@ -142,7 +142,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const pibQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(ibge_pib.pib_per_capita)', 'gdp_per_capita') + .field('CAST(AVG(ibge_pib.pib_per_capita) AS INTEGER)', 'gdp_per_capita') .field('ibge_pib.ano_censo', 'census_year') .from('ibge_pib') .where(`ibge_pib.ano_censo IN (${pibYearQry.toString()})`) @@ -154,7 +154,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const idhQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(idhm)', 'idhm') + .field('CAST(AVG(idhm) AS INTEGER)', 'idhm') .field('adh_idh.ano_censo', 'census_year') .from('adh_idh') .where(`adh_idh.ano_censo IN (${idhYearQry.toString()})`) @@ -166,7 +166,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const analfabQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(t_analf15m)', 'analfabetism') + .field('CAST(AVG(t_analf15m) AS INTEGER)', 'analfabetism') .field('adh_analfabetismo.ano_censo', 'census_year') .from('adh_analfabetismo') .where(`adh_analfabetismo.ano_censo IN (${analfabYearQry.toString()})`) @@ -178,7 +178,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const giniQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(gini)', 'gini') + .field('CAST(AVG(gini) AS INTEGER)', 'gini') .field('adh_gini.ano_censo', 'census_year') .from('adh_gini') .where(`adh_gini.ano_censo IN (${giniYearQry.toString()})`) @@ -206,7 +206,7 @@ spatialApp.get('/educational', rqf.parse(), rqf.build(), (req, res, next) => { const totalSchoolsQry = req.sql.clone() .field('\'Brasil\'', 'name') .field('\'Total\'', 'location_name') - .field('COUNT(DISTINCT(escola.id))', 'total') + .field('CAST(COUNT(DISTINCT(escola.id)) AS INTEGER)', 'total') .field('escola.ano_censo', 'census_year') .from('turma') .from('escola') @@ -217,7 +217,7 @@ spatialApp.get('/educational', rqf.parse(), rqf.build(), (req, res, next) => { const schoolsPerLocationQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('COUNT(DISTINCT(escola.id))', 'total') + .field('CAST(COUNT(DISTINCT(escola.id)) AS INTEGER)', 'total') .field('escola.ano_censo', 'census_year') .field('localizacao.descricao', 'location_name') .from('localizacao') @@ -234,7 +234,7 @@ spatialApp.get('/educational', rqf.parse(), rqf.build(), (req, res, next) => { const schoolsPerAdmDependencyQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('COUNT(DISTINCT(escola.id))', 'total') + .field('CAST(COUNT(DISTINCT(escola.id)) AS INTEGER)', 'total') .field('escola.ano_censo', 'census_year') .field('dependencia_adm.nome', 'adm_dependency_name') .from('dependencia_adm') @@ -310,7 +310,7 @@ spatialApp.get('/educational/school_level', rqf.parse(), rqf.build(), (req, res, .from('matricula'); const enrollmentsPerSchoolLevelQry = req.sql.clone() - .field('COALESCE(COUNT(matricula.id), 0)', 'total') + .field('COALESCE(CAST(COUNT(matricula.id), 0) AS INTEGER)', 'total') .field('matricula.ano_censo', 'census_year') .field('matricula.serie_ano_id', 'school_year') .field('etapa_ensino.desc_etapa', 'school_level') diff --git a/src/libs/routes_v1/studentsAee.js b/src/libs/routes_v1/studentsAee.js index 2a45a2f5f038407b2fe6b9dbb4b44c504ce4e77e..000ea7c055c0923d2a2f8a1949f22a7dd0bdb93f 100644 --- a/src/libs/routes_v1/studentsAee.js +++ b/src/libs/routes_v1/studentsAee.js @@ -207,7 +207,7 @@ rqf.addField({ studentsAeeApp.get('/', rqf.parse(), (req, res, next) => { req.sql.from('numero_estudantes_aee') .field('numero_estudantes_aee.ano_censo') - .field('COUNT(distinct numero_estudantes_aee.id_aluno)', 'total') + .field('CAST(COUNT(distinct numero_estudantes_aee.id_aluno) AS INTEGER)', 'total') .group('numero_estudantes_aee.ano_censo') .order('numero_estudantes_aee.ano_censo') next(); diff --git a/src/libs/routes_v1/teacher.js b/src/libs/routes_v1/teacher.js index 94e6d86c60933d906b9f0f8264ebfd14da5534c4..570b24dd83939ab7d6bbf16a634bbc70d15b0b48 100644 --- a/src/libs/routes_v1/teacher.js +++ b/src/libs/routes_v1/teacher.js @@ -521,7 +521,7 @@ const sortYearPtid = (a, b) => { } teacherApp.get('/', rqf.parse(), (req, res, next) => { - req.sql.field('COUNT(DISTINCT docente.id_docente)', 'total') + req.sql.field('CAST(COUNT(DISTINCT docente.id_docente) as INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') .from('docente') diff --git a/src/libs/routes_v1/transport.js b/src/libs/routes_v1/transport.js index 74c1b0954a8cb71cb5e5fd275cdb82143c4dc944..28df78b7b6125ea26e613af8321d8e0fc2bfdd43 100644 --- a/src/libs/routes_v1/transport.js +++ b/src/libs/routes_v1/transport.js @@ -315,7 +315,7 @@ rqf.addField({ transportApp.get('/', rqf.parse(), (req, res, next) => { req.dims.year = true; req.sql - .field('sum(transporte.total)', 'total') + .field('CAST(sum(transporte.total) AS INTEGER)', 'total') .field("'Brasil'", 'name') .from('transporte') .where('transporte.transporte_id=0') @@ -327,7 +327,7 @@ transportApp.get('/', rqf.parse(), (req, res, next) => { }, rqf.parse(), (req, res, next) => { req.dims.year = true; req.sql - .field('sum(transporte.total)', 'total') + .field('CAST(sum(transporte.total) AS INTEGER)', 'total') .field("'Brasil'", 'name') .from('transporte') .where('transporte.transporte_id=1') @@ -340,7 +340,7 @@ transportApp.get('/', rqf.parse(), (req, res, next) => { }, rqf.parse(), (req, res, next) => { req.dims.year = true; req.sql - .field('sum(transporte.total)', 'total') + .field('CAST(sum(transporte.total) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('transporte.transporte_id', 'id') .from('transporte') diff --git a/src/libs/routes_v1/university.js b/src/libs/routes_v1/university.js index be7fe771609b5c4e6a89d98217724c60d0436a5d..b9455a18c3d7a80865f9fc3599ca7e5796fbd968 100644 --- a/src/libs/routes_v1/university.js +++ b/src/libs/routes_v1/university.js @@ -334,7 +334,7 @@ universityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { }, query, response('university')); universityApp.get('/count', rqfCount.parse(), (req, res, next) => { - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('ies_ens_superior.ano_censo', 'year') .from('ies_ens_superior') diff --git a/src/libs/routes_v1/universityEnrollment.js b/src/libs/routes_v1/universityEnrollment.js index 8df5aded0c1ea4f91cbbbbd5fff8e2ea1cd0b279..b625e765fa6b4fe1f4a5794dae8f7ec0e5b82754 100644 --- a/src/libs/routes_v1/universityEnrollment.js +++ b/src/libs/routes_v1/universityEnrollment.js @@ -730,7 +730,7 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { if ("university" in req.dims || "universityLocalOffer" in req.dims) { req.sql.from('localoferta_ens_superior_matricula') .field('curso_ens_superior.ano_censo', 'year') - .field('COUNT(localoferta_ens_superior.cod_local_oferta)', 'total') + .field('CAST(COUNT(localoferta_ens_superior.cod_local_oferta) AS INTEGER)', 'total') .group('localoferta_ens_superior_matricula.ano_censo') .where('localoferta_ens_superior_matricula.cod_aluno_situacao = 2 OR localoferta_ens_superior_matricula.cod_aluno_situacao = 6 OR localoferta_ens_superior_matricula.matriculado = 1') .where('localoferta_ens_superior_matricula.cod_nivel_academico = 1') @@ -739,7 +739,7 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { } else { req.sql.from('localoferta_ens_superior_matricula') .field('localoferta_ens_superior_matricula.ano_censo', 'year') - .field('COUNT(*)', 'total') + .field('CAST(COUNT(*) AS INTEGER)', 'total') .field('localoferta_ens_superior_matricula.cod_ies', 'university_id') .field('localoferta_ens_superior_matricula.nome_ies', 'university_name') .where('localoferta_ens_superior_matricula.cod_aluno_situacao = 2 OR localoferta_ens_superior_matricula.cod_aluno_situacao = 6 OR localoferta_ens_superior_matricula.matriculado = 1') @@ -753,7 +753,7 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { } else if (("state" in req.dims) || ("city" in req.dims) || ("region" in req.dims) || ("mesoregion" in req.dims) || ("microregion" in req.dims) || ("state" in req.filter) || ("city" in req.filter) || ("region" in req.filter) || ("mesoregion" in req.filter) || ("microregion" in req.filter)) { req.sql.from('localoferta_ens_superior_matricula') - .field('DISTINCT COUNT(*)', 'total') + .field('CAST(DISTINCT COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('localoferta_ens_superior_matricula.ano_censo', 'year') .where('localoferta_ens_superior_matricula.cod_aluno_situacao = 2 OR localoferta_ens_superior_matricula.cod_aluno_situacao = 6 OR localoferta_ens_superior_matricula.matriculado = 1') @@ -762,7 +762,7 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { .order('localoferta_ens_superior_matricula.ano_censo') } else if ("university" in req.dims || "universityLocalOffer" in req.dims) { req.sql.from('aluno_ens_superior') - .field('COUNT(*)', 'total') + .field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('aluno_ens_superior.ano_censo', 'year') .group('aluno_ens_superior.cod_ies') @@ -773,7 +773,7 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { .order('aluno_ens_superior.ano_censo') } else { req.sql.from('localoferta_ens_superior_matricula') - .field('COUNT(*)', 'total') + .field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('localoferta_ens_superior_matricula.ano_censo', 'year') .where('localoferta_ens_superior_matricula.cod_aluno_situacao = 2 OR localoferta_ens_superior_matricula.cod_aluno_situacao = 6 OR localoferta_ens_superior_matricula.matriculado = 1') @@ -794,11 +794,11 @@ universityEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { universityEnrollmentApp.get('/enter_situation', rqf.parse(), (req, res, next) => { req.sql.from('localoferta_ens_superior_matricula') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=2 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END)', 'cursando') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=6 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END)', 'concluinte') - .field('SUM(CASE WHEN (localoferta_ens_superior_matricula.cod_aluno_situacao=4 OR localoferta_ens_superior_matricula.cod_aluno_situacao=5 OR localoferta_ens_superior_matricula.cod_aluno_situacao=7) AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END)', 'evadido') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=3 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END)', 'trancado') - .field('COUNT(*)', 'total') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=2 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END) AS INTEGER)', 'cursando') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=6 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END) AS INTEGER)', 'concluinte') + .field('CAST(SUM(CASE WHEN (localoferta_ens_superior_matricula.cod_aluno_situacao=4 OR localoferta_ens_superior_matricula.cod_aluno_situacao=5 OR localoferta_ens_superior_matricula.cod_aluno_situacao=7) AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END) AS INTEGER)', 'evadido') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=3 AND localoferta_ens_superior_matricula.ingressante=1 THEN 1 ELSE 0 END) AS INTEGER)', 'trancado') + .field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('localoferta_ens_superior_matricula.ano_censo', 'year') .where('localoferta_ens_superior_matricula.cod_nivel_academico=1') @@ -820,10 +820,10 @@ universityEnrollmentApp.get('/enter_situation', rqf.parse(), (req, res, next) => universityEnrollmentApp.get('/enrollment_situation', rqf.parse(), (req, res, next) => { req.sql.from('localoferta_ens_superior_matricula') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=2 THEN 1 ELSE 0 END)', 'cursando') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=6 THEN 1 ELSE 0 END)', 'concluinte') - .field('SUM(CASE WHEN (localoferta_ens_superior_matricula.cod_aluno_situacao=4 OR localoferta_ens_superior_matricula.cod_aluno_situacao=5 OR localoferta_ens_superior_matricula.cod_aluno_situacao=7) THEN 1 ELSE 0 END)', 'evadido') - .field('SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=3 THEN 1 ELSE 0 END)', 'trancado') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=2 THEN 1 ELSE 0 END) AS INTEGER)', 'cursando') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=6 THEN 1 ELSE 0 END) AS INTEGER)', 'concluinte') + .field('CAST(SUM(CASE WHEN (localoferta_ens_superior_matricula.cod_aluno_situacao=4 OR localoferta_ens_superior_matricula.cod_aluno_situacao=5 OR localoferta_ens_superior_matricula.cod_aluno_situacao=7) THEN 1 ELSE 0 END) AS INTEGER)', 'evadido') + .field('CAST(SUM(CASE WHEN localoferta_ens_superior_matricula.cod_aluno_situacao=3 THEN 1 ELSE 0 END) AS INTEGER)', 'trancado') .field('localoferta_ens_superior_matricula.ano_censo', 'year') .field("'Brasil'", 'name') .where('localoferta_ens_superior_matricula.cod_nivel_academico=1') diff --git a/src/libs/routes_v1/universityTeacher.js b/src/libs/routes_v1/universityTeacher.js index f65a29b2e7ce54a9b374873352a744809fc0a4f0..11531d67cd1c532ed73aeab871c340cffc2b30aa 100644 --- a/src/libs/routes_v1/universityTeacher.js +++ b/src/libs/routes_v1/universityTeacher.js @@ -493,7 +493,7 @@ rqf.addField({ teacherEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { if ("university" in req.dims) { - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente_ens_superior.ano_censo', 'year') .from('docente_ens_superior') @@ -503,7 +503,7 @@ teacherEnrollmentApp.get('/', rqf.parse(), (req, res, next) => { .order('docente_ens_superior.ano_censo') } else { - req.sql.field('COUNT(*)', 'total') + req.sql.field('CAST(COUNT(*) AS INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente_ens_superior.ano_censo', 'year') .from('docente_ens_superior') diff --git a/src/libs/routes_v2/classCount.js b/src/libs/routes_v2/classCount.js index 7771632838dc5a09cb47f3400ddf5e055b15db23..5dc2fff41ae4e90647fef7ee418b47baccc70fe4 100644 --- a/src/libs/routes_v2/classCount.js +++ b/src/libs/routes_v2/classCount.js @@ -359,7 +359,7 @@ function addZeroFields(result) { classCountApp.get('/count', rqf.parse(), (req, res, next) => { req.sql.field("'Brasil'", 'name') .field('turma.ano_censo', 'year') - .field('AVG(turma.num_matricula)', 'average') + .field('CAST(AVG(turma.num_matricula) AS INTEGER)', 'average') .field('MEDIAN(turma.num_matricula)', 'median') .field('STDDEV_POP(turma.num_matricula)', 'stddev') .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt') diff --git a/src/libs/routes_v2/cub.js b/src/libs/routes_v2/cub.js index cfc2848a19ef2f831c6562a89d5fd5ea7f938b22..6908705e97ee310d0546570f3a7dec01631d58ca 100644 --- a/src/libs/routes_v2/cub.js +++ b/src/libs/routes_v2/cub.js @@ -173,7 +173,7 @@ cubApp.get('/last_state_values', rqf.parse(), rqf.build(), (req, res, next) => { ) .join('estado', null, 'cub.estado_id = estado.id') , "states") - .field('AVG(states.preco)', 'preco') + .field('CAST(AVG(states.preco) AS INTEGER)', 'preco') .field("'BR'", 'sigla_uf') .field('states.tipo_preco') .group('states.tipo_preco') @@ -200,7 +200,7 @@ cubApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('cub') .field("'BR'", 'sigla_uf') .field("cub.tipo_preco", 'tipo_preco') - .field('AVG(cub.preco)', 'preco') + .field('CAST(AVG(cub.preco) AS INTEGER)', 'preco') .join('estado', null, 'cub.estado_id=estado.id') .group('cub.ano_censo') .group('cub.mes_censo') diff --git a/src/libs/routes_v2/dailyChargeAmount.js b/src/libs/routes_v2/dailyChargeAmount.js index 78115e48c9de29559b2f2a717c90fac24b4f4ca4..d1f7392075bf44f908ca48cda67e981f8bbaf5b7 100644 --- a/src/libs/routes_v2/dailyChargeAmount.js +++ b/src/libs/routes_v2/dailyChargeAmount.js @@ -357,7 +357,7 @@ dailyChargeAmountApp.get('/', rqf.parse(), (req, res, next) => { req.sql.from('turma') .field('turma.ano_censo', 'year') .field('turma.etapa_resumida', 'education_level_short_id') - .field('AVG(turma.duracao_turma)/60.0', 'average_class_duration') + .field('CAST(AVG(turma.duracao_turma)/60.0 AS INTEGER)', 'average_class_duration') .field('MEDIAN(turma.duracao_turma)/60.0', 'median_class_duration') .field('STDDEV_SAMP(turma.duracao_turma)/60.0', 'std_class_duration') .field('QUANTILE(turma.duracao_turma, 0.25)/60.0', 'fstqt_class_duration') @@ -433,7 +433,7 @@ dailyChargeAmountApp.get('/average', rqf.parse(), rqf.build(), (req, res, next) let joinRG = squel.select(); joinRG.from(tableR, 'R') .field('R.etapas_mod_ensino_segmento_id') - .field('AVG(1.0*R.duracao_turma)/60', 'median_value') + .field('CAST(AVG(1.0*R.duracao_turma)/60 AS INTEGER)', 'median_value') .join(tableG, 'G', 'R.etapas_mod_ensino_segmento_id = G.etapas_mod_ensino_segmento_id AND R.rowNo BETWEEN G.counter/2 AND G.counter/2+G.counter%2') .group('R.etapas_mod_ensino_segmento_id') @@ -442,8 +442,8 @@ dailyChargeAmountApp.get('/average', rqf.parse(), rqf.build(), (req, res, next) .from(joinRG, 'm') .field('turma.ano_censo', 'year') .field('turma.etapas_mod_ensino_segmento_id', 'education_level_mod_id') - .field('AVG(turma.duracao_turma)/60.0', 'average_class_duration') - .field('AVG(m.median_value)', 'median_class_duration') + .field('CAST(AVG(turma.duracao_turma)/60.0 AS INTEGER)', 'average_class_duration') + .field('CAST(AVG(m.median_value) AS INTEGER)', 'median_class_duration') .field('STDDEV_SAMP(turma.duracao_turma)/60.0', 'std_class_duration') .field('QUANTILE(turma.duracao_turma, 0.25)/60.0', 'fstqt_class_duration') .field('QUANTILE(turma.duracao_turma, 0.75)/60.0', 'thdqt_class_duration') diff --git a/src/libs/routes_v2/simcaqClassroomSize.js b/src/libs/routes_v2/simcaqClassroomSize.js index d70d084ec14d30dad60945547234ff23079d7bf8..07340469eaebaf07f353df644b480be7ba970033 100644 --- a/src/libs/routes_v2/simcaqClassroomSize.js +++ b/src/libs/routes_v2/simcaqClassroomSize.js @@ -136,7 +136,7 @@ rqf.addField({ simcaqClassroomSizeApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('simcaq_tamanho_das_turmas') - .field('AVG(simcaq_tamanho_das_turmas.num_matricula)', 'average_classroom_size') + .field('CAST(AVG(simcaq_tamanho_das_turmas.num_matricula) AS INTEGER)', 'average_classroom_size') .field('simcaq_tamanho_das_turmas.etapa', 'education_level_short_id') .field('simcaq_tamanho_das_turmas.ano_censo', 'year') .group('simcaq_tamanho_das_turmas.ano_censo') diff --git a/src/libs/routes_v2/simcaqWorkload.js b/src/libs/routes_v2/simcaqWorkload.js index b4584224f16b94b2490885493293f41ebb5b8f30..2ef12e23a16438f16ab7688ec6f34417127fc4bc 100644 --- a/src/libs/routes_v2/simcaqWorkload.js +++ b/src/libs/routes_v2/simcaqWorkload.js @@ -136,7 +136,7 @@ rqf.addField({ simcaqWorkloadApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => { req.sql.from('simcaq_carga_horaria_de_ensino') - .field('AVG(duracao_turma_horas)', 'average_workload') + .field('CAST(AVG(duracao_turma_horas) AS INTEGER)', 'average_workload') .field('simcaq_carga_horaria_de_ensino.etapa', 'education_level_short_id') .field('simcaq_carga_horaria_de_ensino.turno', 'shift_id') .field('simcaq_carga_horaria_de_ensino.rede', 'adm_dependency_public_id') diff --git a/src/libs/routes_v2/spatial.js b/src/libs/routes_v2/spatial.js index d4f48fe8eda00fe562b60e83bf69416c81694d33..6675bca63bbf24984793f5de440f008a4191d9fb 100644 --- a/src/libs/routes_v2/spatial.js +++ b/src/libs/routes_v2/spatial.js @@ -142,7 +142,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const pibQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(ibge_pib.pib_per_capita)', 'gdp_per_capita') + .field('CAST(AVG(ibge_pib.pib_per_capita) AS INTEGER)', 'gdp_per_capita') .field('ibge_pib.ano_censo', 'census_year') .from('ibge_pib') .where(`ibge_pib.ano_censo IN (${pibYearQry.toString()})`) @@ -154,7 +154,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const idhQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(idhm)', 'idhm') + .field('CAST(AVG(idhm) AS INTEGER)', 'idhm') .field('adh_idh.ano_censo', 'census_year') .from('adh_idh') .where(`adh_idh.ano_censo IN (${idhYearQry.toString()})`) @@ -166,7 +166,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const analfabQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(t_analf15m)', 'analfabetism') + .field('CAST(AVG(t_analf15m) AS INTEGER)', 'analfabetism') .field('adh_analfabetismo.ano_censo', 'census_year') .from('adh_analfabetismo') .where(`adh_analfabetismo.ano_censo IN (${analfabYearQry.toString()})`) @@ -178,7 +178,7 @@ spatialApp.get('/sociodemographic', rqf.parse(), rqf.build(), (req, res, next) = const giniQry = req.sql.clone() .field('\'Brasil\'', 'name') - .field('AVG(gini)', 'gini') + .field('CAST(AVG(gini) AS INTEGER)', 'gini') .field('adh_gini.ano_censo', 'census_year') .from('adh_gini') .where(`adh_gini.ano_censo IN (${giniYearQry.toString()})`) diff --git a/src/libs/routes_v2/teacher.js b/src/libs/routes_v2/teacher.js index 94e6d86c60933d906b9f0f8264ebfd14da5534c4..570b24dd83939ab7d6bbf16a634bbc70d15b0b48 100644 --- a/src/libs/routes_v2/teacher.js +++ b/src/libs/routes_v2/teacher.js @@ -521,7 +521,7 @@ const sortYearPtid = (a, b) => { } teacherApp.get('/', rqf.parse(), (req, res, next) => { - req.sql.field('COUNT(DISTINCT docente.id_docente)', 'total') + req.sql.field('CAST(COUNT(DISTINCT docente.id_docente) as INTEGER)', 'total') .field("'Brasil'", 'name') .field('docente.ano_censo', 'year') .from('docente')