MySQL - Calcular Promedio

 
Vista:
sin imagen de perfil
Val: 6
Ha disminuido su posición en 25 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Calcular Promedio

Publicado por Giancarlo Laredo (5 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
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Calcular Promedio

Publicado por leonardo_josue (414 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
sin imagen de perfil
Val: 6
Ha disminuido su posición en 25 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Calcular Promedio

Publicado por Giancarlo (5 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

Calcular Promedio

Publicado por Carei (1 intervención) el 11/05/2017 09:50:26
donde es que tengo que colocar (columna1 + columna2 + columna3 + columna4 + columna5) / 5?
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

Calcular Promedio

Publicado por Victor (1 intervención) el 06/06/2019 15:43:47
SELECT (nota1 + nota2 + nota3 + nota4 + nota5)/5 FROM `tabla` WHERE id_alumno=1
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

Calcular Promedio

Publicado por Alonso (1 intervención) el 21/05/2019 02:31:59
si alguien sabe como hacer para que al calcular el promedio no tome los valores nulos o vacios. mil gracias de antemano, ensayé poniendo por defecto el value=¨NUll¨ pero de todos modos los toma como valores.
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
Imágen de perfil de José Manuel
Val: 44
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

Calcular Promedio

Publicado por José Manuel (15 intervenciones) el 10/06/2019 11:37:47
Alonso, depende de la consulta que estés realizando:

- Si calculas el promedio usando AVG, es una función que ya ignora los NULL.

- Si usas algo como SUM(columna) / COUNT(columna), son funciones que también excluirán los NULL.

- Puedes estar usando los operadores y funciones IS NOT NULL, IFNULL...

- Controlar un valor vacío: value != ''

Espero que te oriente. Un saludo.
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