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

obtener promedio de dos campos y ordenarlos

Estas en el tema de obtener promedio de dos campos y ordenarlos en el foro de Bases de Datos General en Foros del Web. tengo un pequeño problema por resolver. tengo una base de datos con varios registros en los cuales tengo dos campos campo VOTOS = que es ...
  #1 (permalink)  
Antiguo 18/06/2008, 07:26
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 18 años, 5 meses
Puntos: 2
obtener promedio de dos campos y ordenarlos

tengo un pequeño problema por resolver.

tengo una base de datos con varios registros en los cuales tengo dos campos

campo VOTOS = que es la cantidad de votos
campo PUNTAJE = que es la suma de puntos de 1 a 10 que dieron los visitantes

para sacar el promedio de cada registro individualmente seria asi

promedio = (puntaje/votos);

ahora lo que deberia hacer es ordenar los registros de mayor a menor segun este promedio.

como puedo hacerlo desde una consulta sql?
  #2 (permalink)  
Antiguo 18/06/2008, 07:50
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: obtener promedio de dos campos y ordenarlos

Cita:
Iniciado por juansemaster Ver Mensaje
tengo un pequeño problema por resolver.

tengo una base de datos con varios registros en los cuales tengo dos campos

campo VOTOS = que es la cantidad de votos
campo PUNTAJE = que es la suma de puntos de 1 a 10 que dieron los visitantes

para sacar el promedio de cada registro individualmente seria asi

promedio = (puntaje/votos);

ahora lo que deberia hacer es ordenar los registros de mayor a menor segun este promedio.

como puedo hacerlo desde una consulta sql?
Con algo así:

SELECT (puntaje/votos) AS promedio FROM nombretabla ORDER BY promedio DESC
  #3 (permalink)  
Antiguo 18/06/2008, 07:51
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: obtener promedio de dos campos y ordenarlos

Creo que si pones order by promedio, no te lo reconocerá... por si acaso no te funciona:

select (puntaje/votos) as promedio
from tabla
order by (puntaje/votos) desc

Salu2
  #4 (permalink)  
Antiguo 18/06/2008, 08:04
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: obtener promedio de dos campos y ordenarlos

amigo Seyko,
MySQL sí permite usar ese alias en el order by. Lo he probado, porque también tenía mis dudas, y lo he probado con tablas con y sin relación y parece reconocerlo. No obstante, tu recomendación es muy apropiada, pues en no pocas ocasiones estos alias no son reconocidos y es preferible volver a formularlos, y tampoco sé cómo se comportan otras bases en este punto.

EDITO el post para pediros ayuda en esto a los que tenéis más experiencia: ¿en qué situaciones habéis observado que se requiere la reformulación porque no funciona el alias?
Lo que sí está claro es que, "por si las moscas", la reformulación que propone seyko es la solución más segura siempre.

Saludos

Última edición por jurena; 18/06/2008 a las 08:52 Razón: pedir aclaraciones
  #5 (permalink)  
Antiguo 18/06/2008, 08:13
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: obtener promedio de dos campos y ordenarlos

muchas gracias a los dos esto me va resultar muy util.
  #6 (permalink)  
Antiguo 18/06/2008, 09:17
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: obtener promedio de dos campos y ordenarlos

amigo Jurena, de ahi que mi primera palabra fuera "Creo".
En sql standar no se puede hacer referencia a los alias, pero hay BDs como MySql que si lo reconocen, pero como juan no habia dicho para que BD era....

Salu2
  #7 (permalink)  
Antiguo 18/06/2008, 09:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 144
Antigüedad: 18 años, 5 meses
Puntos: 2
Respuesta: obtener promedio de dos campos y ordenarlos

tengo un problema asi solo selecciona el valor promedio los valores de los otros campos de la tabla no los toma en el array.

que debo agregar?
  #8 (permalink)  
Antiguo 18/06/2008, 10:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: obtener promedio de dos campos y ordenarlos

Juansemaster,
el nombre del campo o de los campos...

SELECT nombrecampo, (puntaje / votos) AS promedio FROM tabla ORDER BY (puntaje / votos) DESC

Seyko,
Tienes razón. No me di cuenta al principio de en qué foro estaba. Luego, al verlo, hice la pregunta. Desconocía que esto de los alias no es sql propiamente. Gracias por la información.
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 19:49.