diff --git a/src/libs/routes/classCount.js b/src/libs/routes/classCount.js
index 854b489a8a46aef657a35b6d9b556f9aaece2646..71b7ab36a540d3e6dff748d7840b3e5e815f0a04 100644
--- a/src/libs/routes/classCount.js
+++ b/src/libs/routes/classCount.js
@@ -298,21 +298,6 @@ classCountApp.get('/source', (req, res, next) => {
   next();
 }, query, response('source'));
 
-function averageCalc(response) {
-  let obj = [];
-  response.forEach((result) => {
-    let newObj = {};
-    let keys = Object.keys(result);
-    keys.forEach((key) => {
-      if(key !== "total_classes" && key !== "total_enrollment")
-        newObj[key] = result[key]
-    })
-    newObj.average = result.total_enrollment / result.total_classes;
-    obj.push(newObj);
-  });
-  return(obj);
-}
-
 // Se a dimensão obrigatória do LDE (etapa de ensino) possui alguma etapa sem nenhum valor, então é criado um objeto
 // com média 0.0 e é inserido no resultado. Usada para não quebrar a sequência de etapas na tabela do LDE.
 function addNullFields(result) {
@@ -339,10 +324,13 @@ function addNullFields(result) {
 classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
   // Faz a consulta do número de alunos pelas dimensões
   if(("education_level_mod" in req.dims) || ("education_level_mod" in req.filter)) {
-    req.sql.field('COUNT(turma.id)', 'total_classes')
-     .field('SUM(turma.num_matricula)', 'total_enrollment')
-     .field("'Brasil'", 'name')
+    req.sql.field("'Brasil'", 'name')
      .field('turma.ano_censo', 'year')
+     .field('AVG(turma.num_matricula)', 'average')
+     .field('MEDIAN(turma.num_matricula)', 'median')
+     .field('STDDEV_POP(turma.num_matricula)', 'stddev')
+     .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt')
+     .field('QUANTILE(turma.num_matricula, 0.75)', 'third_qt')
      .from('turma')
      .group('turma.ano_censo')
      .order('turma.ano_censo')
@@ -358,7 +346,7 @@ classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
 }, rqf.build(), query, id2str.transform(), (req, res, next) => {
     req.partial = [];
 
-    // Caso tenha apenas uma dimensão, a indicador possuirá uma linha de total
+    // Caso tenha apenas uma dimensão, o indicador possuirá uma linha de total
     if((req.dims) && (req.dims.size == 1)) {
       req.partial = req.result;
 
@@ -373,10 +361,13 @@ classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
       req.resetSql();
       req.dims = {};
       req.filter = yearFilter;
-      req.sql.field('COUNT(turma.id)', 'total_classes')
-       .field('SUM(turma.num_matricula)', 'total_enrollment')
-       .field("'Brasil'", 'name')
+      req.sql.field("'Brasil'", 'name')
        .field('turma.ano_censo', 'year')
+       .field('AVG(turma.num_matricula)', 'average')
+       .field('MEDIAN(turma.num_matricula)', 'median')
+       .field('STDDEV_POP(turma.num_matricula)', 'stddev')
+       .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt')
+       .field('QUANTILE(turma.num_matricula, 0.75)', 'third_qt')
        .from('turma')
        .group('turma.ano_censo')
        .order('turma.ano_censo')
@@ -384,10 +375,10 @@ classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
      }
     next();
 }, rqf.build(), query, addMissing(rqf), id2str.transform(), (req, res, next) => {
+  // Se tem apenas uma dimensão
   if(req.partial.length > 0) {
-    const classCount = averageCalc(req.partial);
-    const yearClassCount = averageCalc(req.result);
-    req.result = classCount;
+    const yearClassCount = req.result;
+    req.result = req.partial;
 
     // Como a linha de total deve aparecer em um caso específico, ela é adicionada junto com a dimensão obrigatória
     yearClassCount.forEach((result) => {
@@ -398,20 +389,21 @@ classCountApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     })
   }
   // Caso tenha mais de uma dimensão, retorna a consulta só pelas dimensões, sem linha de total
-  else {
-    const classCount = averageCalc(req.result);
-    req.result = classCount;
+  else
     addNullFields(req.result);
-  }
+
   next();
 }, response('class_count'));
 
 // SimCAQ
 classCountApp.get('/count', rqf.parse(), rqf.build(), (req, res, next) => {
-  req.sql.field('COUNT(turma.id)', 'total_classes')
-   .field('SUM(turma.num_matricula)', 'total_enrollment')
-   .field("'Brasil'", 'name')
+  req.sql.field("'Brasil'", 'name')
    .field('turma.ano_censo', 'year')
+   .field('AVG(turma.num_matricula)', 'average')
+   .field('MEDIAN(turma.num_matricula)', 'median')
+   .field('STDDEV_POP(turma.num_matricula)', 'stddev')
+   .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt')
+   .field('QUANTILE(turma.num_matricula, 0.75)', 'third_qt')
    .from('turma')
    .group('turma.ano_censo')
    .order('turma.ano_censo')
@@ -433,10 +425,13 @@ classCountApp.get('/count', rqf.parse(), rqf.build(), (req, res, next) => {
         req.resetSql();
         req.dims = {};
         req.filter = yearFilter;
-        req.sql.field('COUNT(turma.id)', 'total_classes')
-         .field('SUM(turma.num_matricula)', 'total_enrollment')
-         .field("'Brasil'", 'name')
+        req.sql.field("'Brasil'", 'name')
          .field('turma.ano_censo', 'year')
+         .field('AVG(turma.num_matricula)', 'average')
+         .field('MEDIAN(turma.num_matricula)', 'median')
+         .field('STDDEV_POP(turma.num_matricula)', 'stddev')
+         .field('QUANTILE(turma.num_matricula, 0.25)', 'first_qt')
+         .field('QUANTILE(turma.num_matricula, 0.75)', 'third_qt')
          .from('turma')
          .group('turma.ano_censo')
          .order('turma.ano_censo')
@@ -444,10 +439,10 @@ classCountApp.get('/count', rqf.parse(), rqf.build(), (req, res, next) => {
      }
      next();
 }, rqf.build(), query, addMissing(rqf), id2str.transform(), (req, res, next) => {
+  // Se possui apenas uma dimensão
   if(req.partial.length > 0) {
-    const classCount = averageCalc(req.partial);
-    const yearClassCount = averageCalc(req.result);
-    req.result = classCount;
+    const yearClassCount = req.result;
+    req.result = req.partial;
 
     // Adiciona os totais por anos ao fim da consulta
     // Como esse tipo de total é específico desse indicador, um label foi adicionado para indicar
@@ -458,10 +453,7 @@ classCountApp.get('/count', rqf.parse(), rqf.build(), (req, res, next) => {
       req.result.push(obj);
     })
   }
-  else {
-    const classCount = averageCalc(req.result);
-    req.result = classCount;
-  }
+  // Caso tenha mais de uma dimensão, retorna a consulta só pelas dimensões, sem linha de total (req.result)
   next();
 }, response('class_count'));