Re: Re: [pgsql-es-ayuda] Select con agregacion por períodos

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: raul andrez gutierrez alejo <raulandrez(at)gmail(dot)com>, Ruben Fitó <r(dot)fito(at)ubiquat(dot)com>
Cc: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Re: [pgsql-es-ayuda] Select con agregacion por períodos
Date: 2015-10-13 15:12:13
Message-ID: 561D1F4D.6070809@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

https://cajondesastreoracle.wordpress.com/2010/02/08/vistas-materializadas/

Mira esto, ignoro si en postgresql existe una vista materializada log,
de no existir, un crontab con lo que necesitas debiera servir.

PS: Me imagino que esto es para una base de datos tipo DW, no una OLTP o
me equivoco ?

On 10/14/2015 3:33 AM, raul andrez gutierrez alejo wrote:
> Hola Ruben.
>
> si no necesita los datos en tiempo real, puede utilizar 3 vistas
> materializadas, cada una agrupada por dia to_char(fecha,''YYYY-MM-DD')
> ,semana to_char(fecha,''YYYY-WW') o to_char(fecha,''YYYY-MM-W') y mes
> to_char(fecha,''YYYY-MM'), las vistas las puede actualizar con un cron
> cada madrugada o cada intervalo de tiempo de decida, así logra un buen
> rendimiento.
>
>
> http://www.postgresql.org/docs/9.4/static/functions-formatting.html
>
> El 13 de octubre de 2015, 9:21, Anthony Sotolongo <asotolongo(at)gmail(dot)com
> <mailto:asotolongo(at)gmail(dot)com>> escribió:
>
> Hola Ruben
>
> El 13/10/15 a las 10:55, Ruben Fitó escribió:
>> 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.
> No se si entendi mal o no te explicaste correctamente, lo que
> entiendo es algo como esto:
>
> /select extract (MONTH..),extract (week..),extract (/
> /DAY..),cliente,max,avg,min from tabla where
> current_date-//*fecha<=365*//group by 1,2,3,4/
>
> pero de seguro no es tan sencillo, jeje
>
> puedes poner un juego de datos y la salida que esperas?
>
> Saludos
>
>> 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 <mailto:j(dot)catarineu(at)ubiquat(dot)com>
>> www.ubiquat.com <http://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.
>
>
>
>
> --
> Raul Andres Gutierrez Alejo

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2015-10-13 15:37:51 Re: checkpoints y disaster recovery anatomy
Previous Message Horacio Miranda 2015-10-13 15:11:09 Re: Re: [pgsql-es-ayuda] Select con agregacion por períodos