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 <asotolo...@gmail.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.f...@ubiquat.com <j.catari...@ubiquat.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.
>
>
>


-- 
Raul Andres Gutierrez Alejo

Responder a