Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

sacar un promedio

Estas en el tema de sacar un promedio en el foro de Bases de Datos General en Foros del Web. Amigos,tengo una tabla en mysql que tiene los siguientes campos: id_nota,nota,periodo,materia,alumno,curso asi: 1- 4.0 - 1 - MAT - 1454 - 602 2- 4.5 - ...
  #1 (permalink)  
Antiguo 20/06/2011, 17:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 13
Antigüedad: 12 años, 11 meses
Puntos: 0
sacar un promedio

Amigos,tengo una tabla en mysql que tiene los siguientes campos:

id_nota,nota,periodo,materia,alumno,curso

asi:

1- 4.0 - 1 - MAT - 1454 - 602
2- 4.5 - 2 - MAT - 1454 -602
3 2.5 - 1- ESP - 1454 - 602
4 3.6 - 2- ESP - 1454 - 602

Quiero sumar la nota de los dos periodos de las asignaturas y que me divida el resultado en dos asi:

01 - 4.25 - MAT - 1454 -602
02 - 3.05- ESP - 1454 - 602

El 4.25 ES LA DEFINITIVA DE LA SUMA DE LOS DOS PERIODOS DE LA ASIGNATURA MAT.

Y EL 3.05 ES LA DEFINITIVA DE LA SUMA DE LOS DOS PERIODOS DE LA ASIGNATURA ESP.

Como podria hacer esta consulta?, se los agradeceria muchisimo si me pueden dar una mano, ya que estoy atascado con esto.
  #2 (permalink)  
Antiguo 21/06/2011, 02:00
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 2 meses
Puntos: 89
Respuesta: sacar un promedio

Con un GROUP BY, un SUM y un /2

Código MySQL:
Ver original
  1. SELECT materia, SUM(nota)/2
  2. FROM notas
  3. GROUP BY materia
  #3 (permalink)  
Antiguo 21/06/2011, 10:32
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: sacar un promedio

Hola chenlixiumao:

La respuesta de Heimish2000 es correcta, pero te recuerdo que existe una función SQL específica para la obtención de promedios, se trata de la función AVG, igual y sería conveniente que le dieras un vistazo a la documentación para ver como funciona. La consulta podría quedar más o menos así:

Código MySQL:
Ver original
  1. SELECT materia, avg(nota) promedio, alumno, curso
  2. FROM TuTabla
  3. GROUP BY materia, alumno, curso

agrego los campos alumno y curso en la agrupación, pues imagino que en tu tabla tienes más alumnos y más cursos, así como posiblemente más materias.

Para redondear el promedio a dos decimales podrías hacerlo así:

Código:
ROUND(AVG(nota), 2) promedio
Saludos
Leo.
  #4 (permalink)  
Antiguo 21/06/2011, 18:31
 
Fecha de Ingreso: mayo-2011
Mensajes: 13
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: sacar un promedio

Gracias buenos amigos,Heimish2000,leonardo_josue.
Me han sacado de un gran apuro.
leonardo_josue, hice lo de tu ejemplo y resulto muy bien muchas gracias amigo.

Etiquetas: promedio, bases-de-datos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:38.