Select con agregacion por períodos

From: Ruben Fitó <r(dot)fito(at)ubiquat(dot)com>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Select con agregacion por períodos
Date: 2015-10-13 13:55:19
Message-ID: CANiYpQzkTxeYdS0pfikCQtTLnfiPE85gZPHY=QQKomxtQQPfDg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Lista,

Tengo una duda a ver si me la podrían resolver.

Tenemos una tabla bastante grande, donde almacenamos ventas.

En esta tabla tenemos los campos *fecha*(timestamp), *importe* y *cliente*,
entre otras pero que no son importantes.

*fecha | importe | cliente*

Lo que necesitamos son los (max, avg, min) de importe y número de ventas
agrupado por cliente, día, semana y mes, mirando desde ahora hasta un año
atrás, sin tener en cuenta el periodo más cercano. Dicho de otro modo,
necesitamos por cada día, semana y mes el (max, avg, min) de importe por
cada cliente sin tener en cuenta el mes actual(para mes), el día
actual(para día) o la semana actual(para semana).

Hemos realizado una gigantesca query con sub-consultas que no se entiende
nada, y el costo temporal es demasiado elevado. Creo que no es conveniente
mostrarla ya que os dará más dolor de cabeza que otra cosa.

No sabemos qué puede ser más óptimo, usar with con subconsultas, usar
PARTITION, u otras alternativas que no hemos pensado.

Nos da igual si nos retorna una tabla o arrays , o tabla de arrays, jejeje,
simplemente que se pueda trabajar fácilmente para poder hacer comparaciones
y poder discriminar con algún parámetro.

Gracias de antemano.

--
*Ruben Fitó *
Software Engineer
r(dot)fito(at)ubiquat(dot)com <j(dot)catarineu(at)ubiquat(dot)com>
www.ubiquat.com
Tota la informació continguda en aquest document i arxius adjunts és
CONFIDENCIAL protegida per llei de secret comercial. Si l'ha rebut per
error, si us plau elimini'l i posi's en contacte amb l'emissor.

All information contained in this document and any attachments are
CONFIDENTIAL and protected under trade secret laws. If you receive this
message by mistake, please delete it and notify it immediately to the
sender.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Anthony Sotolongo 2015-10-13 14:21:12 Re: Select con agregacion por períodos
Previous Message Richardson Hinestroza 2015-10-13 12:32:48 Re: checkpoints y disaster recovery anatomy