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
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 |