MySQL - Promedio Automático

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

Promedio Automático

Publicado por José Luis (2 intervenciones) el 18/04/2018 03:31:27
Tengo una duda....
En mi tabla calificaciones tengo los campos:
ID
Cali_1
Cali_2
Cali_3
Prom

Lo que quiero saber es como hacer que el campo Prom se llene automáticamente con el promedio de Cali_1, Cali_2 y Cali_3

Ayuda!!!!
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

Promedio Automático

Publicado por leonardo_josue (414 intervenciones) el 18/04/2018 16:31:02
Hola José Luis:

Si un campo es calculado como es el caso, en realidad no tienes necesidad de tenerlo almacenado en la tabla, sino que simplemente lo calculas en el SELECT:

La misma definición para el cálculo del promedio te dice lo que tienes que hacer: para calcular el promedio sumas las tres calificaciones y divides entre 3...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mysql> SELECT * FROM tabla;
+------+--------+--------+--------+
| id   | cali_1 | cali_2 | cali_3 |
+------+--------+--------+--------+
|    1 |     10 |     10 |     10 |
|    2 |     10 |      9 |      8 |
|    3 |      7 |     10 |      6 |
|    4 |      5 |      4 |      5 |
+------+--------+--------+--------+
4 rows in set (0.00 sec)
 
mysql> SELECT
    ->   id, cali_1, cali_2, cali_3,
    ->   (cali_1 + cali_2 + cali_3) / 3 prom
    -> FROM tabla;
+------+--------+--------+--------+---------+
| id   | cali_1 | cali_2 | cali_3 | prom    |
+------+--------+--------+--------+---------+
|    1 |     10 |     10 |     10 | 10.0000 |
|    2 |     10 |      9 |      8 |  9.0000 |
|    3 |      7 |     10 |      6 |  7.6667 |
|    4 |      5 |      4 |      5 |  4.6667 |
+------+--------+--------+--------+---------+
4 rows in set (0.00 sec)

Pero, si insistes en tener el campo prom en la tabla, entonces tienes que programar dos disparadores (trigger's) que se ejecuten cuando insertas o actualizas registros de tu tabla, para realizar el cálculo de este campo... Investiga un poco sobre de este tema, y si continuas con problemas, entonces posteas lo que intentaste hacer y con gusto te ayudamos a completar y/o corregir lo que haga falta.

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
0
Comentar