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