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

Duda con funcion de agregación SUM(..)

Estas en el tema de Duda con funcion de agregación SUM(..) en el foro de PostgreSQL en Foros del Web. Es posible hacer en postgres lo siguiente?, tengo varias columnas que se calculan usando SUM, pero me he encontrado con que no puedo hacer operaciones ...
  #1 (permalink)  
Antiguo 11/05/2012, 07:19
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 5 meses
Puntos: 12
Duda con funcion de agregación SUM(..)

Es posible hacer en postgres lo siguiente?, tengo varias columnas que se calculan usando SUM, pero me he encontrado con que no puedo hacer operaciones con los resultados directamente es decir algo como lo siguiente

SELECT SUM(p.valor) AS total_valor, SUM(o.credito) AS total_credito, p.proyecto,
(total_valor - total_credito) AS otro_valor
FROM proyecto
GROUP BY p.proyecto

Me toca volver a recalcular y restar entre si para poder hacerlo
( SUM(p.valor) - SUM(o.credito) ) AS otro_valor

Para una consulta con pocos registros esta bien, pero para consultas con miles de registros es bastante engorroso.

Alguna recomendacion?
  #2 (permalink)  
Antiguo 11/05/2012, 08:20
 
Fecha de Ingreso: enero-2005
Mensajes: 122
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Duda con funcion de agregación SUM(..)

Podrías hacer lo siguiente:

select *, (total_valor - total_credito) AS otro_valor from (
SELECT SUM(p.valor) AS total_valor, SUM(o.credito) AS total_credito, p.proyecto
FROM proyecto
GROUP BY p.proyecto) as foo

Debería funcionarte.
  #3 (permalink)  
Antiguo 11/05/2012, 09:29
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 5 meses
Puntos: 12
Respuesta: Duda con funcion de agregación SUM(..)

Lo probare y te comento, muchas gracias.

Etiquetas: funcion, postgre, select
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 07:26.