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

Se podra hacer este query?

Estas en el tema de Se podra hacer este query? en el foro de PostgreSQL en Foros del Web. Hola buen dia. Estoy tratando de diseñar un query que me traiga de una tabla el promedio pero no vertical sino horizontal de cada una ...
  #1 (permalink)  
Antiguo 28/11/2009, 18:45
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
Se podra hacer este query?

Hola buen dia.

Estoy tratando de diseñar un query que me traiga de una tabla el promedio pero no vertical sino horizontal de cada una de las filas en la tabla

Por ejemplo:

Tengo tabla(id,valor1,valor2,valor3) y tengo por ejemplo 5 registros(5 filas)

select *from tabla;

id,valor1,valor2,valor3

1 5 3 4
2 5 5 4
3 3 2 4
4 2 5 4
5 5 3 2


yo quiero hacer un query que me extraiga esas 5 filas o registros pero en lugar de salir asi salgan asi:

1 4
2 4,666
3 3
4 3.666
5 3.333

siendo esos valores el promedio de las columnas por fila.

Alguna idea¿
  #2 (permalink)  
Antiguo 29/11/2009, 08:33
Avatar de xdrtas  
Fecha de Ingreso: junio-2008
Ubicación: Venezuela
Mensajes: 97
Antigüedad: 15 años, 10 meses
Puntos: 13
Respuesta: Se podra hacer este query?

Cita:
Iniciado por TyrantRC Ver Mensaje
Alguna idea¿
Hola, si, usando formulas matemáticas como esta:
Código SQL:
Ver original
  1. SELECT ((valor1 + valor2 + valor3) / 3)::FLOAT AS total FROM tabla

Donde valor1, valor2, valor3 los definí como numeric(2) o real.

Y si por fuerza te obligan a usar smallint, integer o bigint, tienes que transformar los valores devueltos primero como sigue:

Código sql:
Ver original
  1. SELECT ((valor1::FLOAT + valor2::FLOAT + valor3::FLOAT) / 3)::FLOAT AS total FROM tabla

Espero que te sirva, saludos.
__________________
¿Cuál es el mejor lenguaje para programar?
Aquel lenguaje por el cual te paguen más.
[--::xdrtas.coolpage.biz::--]
[---:::xdrtas:::---]
  #3 (permalink)  
Antiguo 29/11/2009, 19:00
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Se podra hacer este query?

Tyrantrc
La respuesta de xdrtas es excelente.

Solo le añado poner el campo id dentro de la consulta como lo preguntaste.

Código sql:
Ver original
  1. pruebas=> SELECT *FROM promedio;
  2.  id | valor1 | valor2 | valor3
  3. ----+--------+--------+--------
  4.   1 |      5 |      3 |      4
  5.   2 |      5 |      5 |      4
  6.   3 |      3 |      2 |      4
  7.   4 |      2 |      5 |      4
  8.   5 |      5 |      3 |      2
  9. (5 filas)
  10.  
  11.  
  12. pruebas=> SELECT id, round(((valor1+valor2+valor3)/3)::NUMERIC,3) AS promedio FROM promedio;
  13.  id | promedio
  14. ----+----------
  15.   1 |    4.000
  16.   2 |    4.667
  17.   3 |    3.000
  18.   4 |    3.667
  19.   5 |    3.333
  20. (5 filas)
  21.  
  22.  
  23. pruebas=>
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 30/11/2009, 18:07
Avatar de TyrantRC  
Fecha de Ingreso: noviembre-2009
Mensajes: 55
Antigüedad: 14 años, 4 meses
Puntos: 1
De acuerdo Respuesta: Se podra hacer este query?

Grax a los dos XD. Me da pena preguntar estupideces como esta, de pana que si es bastante facil. Nunca use el lenguaje sql de esa manera XDXD.


todos los dias se aprende algo nuevo =)
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 23:53.