From: | Felipe Hernández <pipelx(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda con group by |
Date: | 2010-07-19 18:12:13 |
Message-ID: | AANLkTim0fIJ-vEhPMi--HnFnb3L3uQ_of4WrjVJ3TIJq@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 19 de julio de 2010 13:10, Felipe Hernández <pipelx(at)gmail(dot)com> escribió:
>
>
> El 19 de julio de 2010 12:55, Fernando Siguenza <fsigu(at)hotmail(dot)com>escribió:
>
> Muchas gracias silvio por la ayuda,pero al momento de ejecutar la consulta
>> como me indicas se demora casi 4 minutos en realizar la misma,
>> tengo apenas 30700 registros.
>>
>> alguna forma de optimzar la misma?/
>>
>> saludos
>>
>> > Date: Mon, 19 Jul 2010 13:53:29 -0300
>> > Subject: Re: [pgsql-es-ayuda] Ayuda con group by
>> > From: silvioq(at)gmail(dot)com
>> > To: fsigu(at)hotmail(dot)com
>> > CC: pgsql-es-ayuda(at)postgresql(dot)org
>>
>> >
>> > El día 19 de julio de 2010 13:22, Fernando Siguenza
>> > <fsigu(at)hotmail(dot)com> escribió:
>> > > Amigos como estan queria consultarles a ver si medan una mano con una
>> > > consulta que necesito.
>> > > Tengo una tabla con los campos semana,fecha,hora,temperatura,humedad
>> > >
>> > > y necesito saber por dia cuales la temperatura y humedad maxima de
>> cada dia
>> > > y a que hora ocurre esto.
>> > >
>> > > Entonces tengo la siguiente consulta
>> > >
>> > > select semana,fecha,hora,max(temperatura),max(humedad)
>> > > from dataloger
>> > > group by semana,fecha,hora
>> > >
>> >
>> > Tenés que hacer dos consultas, una para la humedad y otra para la
>> > temperatura, ya que el horario de temperatura puede ser distinto al de
>> > humedad.
>> >
>> >
>> > select a.fecha, a.hora, a.humedad
>> > from dataloger a
>> > where humedad = ( select max( humedad )
>> > from dataloger b
>> > where a.fecha = b.fecha )
>> >
>> > y lo mismo para temperatura.
>> >
>> > Silvio
>>
>>
> La consulta es ineficiente, nunca hagas algo como campo = ( select ) , esto
> hace q la consulta del select interno corra por cada registro a comparar, en
> este caso seria algo como 30 mil veces por cada registro. mas bien has algo
> como esto
>
>
> select
> a.fecha,
> a.hora,
> a.humedad
> from
> dataloger a,
> (select
> fecha,
> max( humedad ) as humedad
> from
> dataloger
> group by
> fecha) as b
> where
> a.fecha=b.fecha and
> a.humedad=b.humedad
>
> y lo mismo para la temperatura.
>
>
>
>> ------------------------------
>> Get news, entertainment and everything you care about at Live.com. Check
>> it out! <http://www.live.com/getstarted.aspx>
>>
>
>
>
> --
> fElIpE
>
--
fElIpE
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Siguenza | 2010-07-19 18:12:58 | RE: Ayuda con group by |
Previous Message | Oscar Argueta | 2010-07-19 18:05:48 | Optimizando Postgres |