MySQL - Calcular Promedio

   
Vista:

Calcular Promedio

Publicado por Giancarlo Laredo linc324@gmail.com (4 intervenciones) el 19/05/2015 18:25:17
Estimados, un apoyo, como configuro una tabla para que al importar notas me cree o calcule el promedio de las mismas en la BD.

Tengo 5 notas que importo desde un excel para N alumnos y lo que deseo es que una vez importado me calcule el promedio de cada uno y se guarde en la BD.

Espero sea algo clara mi idea.

Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Calcular Promedio

Publicado por leonardo_josue (81 intervenciones) el 19/05/2015 20:41:33
Hola Giancarlo Laredo:

La idea es clara, lo que no me queda claro es qué es lo que intentaste hacer hacer o cuál es el problema...

En cuanto al cálculo del promedio, depende de cómo tienes organizados los datos, si en forma de registros o en forma de columnas, Si lo tienes en forma de columnas, es decir, algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mysql> SELECT * FROM tabla;
+-----------+---------+------------+
| id_alumno | id_nota | valor_nota |
+-----------+---------+------------+
|         1 |       1 |          9 |
|         1 |       2 |         10 |
|         1 |       3 |          8 |
|         1 |       4 |         10 |
|         1 |       5 |         10 |
|         2 |       1 |          6 |
|         2 |       2 |          7 |
|         2 |       3 |          8 |
|         2 |       4 |          6 |
|         2 |       5 |          6 |
+-----------+---------+------------+
10 rows in set (0.00 sec)

simplemente puedes utilizar la función de agrupación AVG, que te obtienes automáticamente el promedio...

1
2
3
4
5
6
7
8
9
10
mysql> SELECT id_alumno, AVG(valor_nota)
    -> FROM tabla
    -> GROUP BY id_alumno;
+-----------+-----------------+
| id_alumno | AVG(valor_nota) |
+-----------+-----------------+
|         1 |          9.4000 |
|         2 |          6.6000 |
+-----------+-----------------+
2 rows in set (0.00 sec)

en caso de tener los valores como columnas, es decir, un solo registro por alumno y sus 5 notas, haces el cálculo matemáticamente, es decir

1
(columna1 + columna2 + columna3 + columna4 + columna5) / 5


Finalmente, ¿qué caso tiene que almacenes un promedio que puedes calcular en tu tabla?.

La normalización de BD's nos dice que si un campo puede ser calculado, entonces NO DEBE SER ALMACENADO EN LA BD'S, ya que sería un dato redundante... (sería algo así como querer preguntar la fecha de nacimiento de una persona y su vez preguntarle cuántos años tiene, si sabes la fecha de nacimiento, entonces puedes calcular la edad de la persona, no hay necesidad de preguntarla).

Otra desventaja de almacenar datos calculados, es que debes tener cuidado de mantener siempre la integridad de los datos, esto quiere decir que si en algún momento cambia una nota de algún alumno, entonces DEBES VOLVER A CALCULAR EL PROMEDIO Y TAMBIÉN ACTUALIZAR ESTE CAMPO.

Se entiende el problema?

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Calcular Promedio

Publicado por Giancarlo (4 intervenciones) el 19/05/2015 21:32:35
Gracias, es lo que queria saber ya que no me quedaba claro el concepto. De verdad te agradezco.

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar