Re: Ayuda con group by

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:49:37
Message-ID: AANLkTinrtMNcVQMal1Wwcqx1udKwJUMgb_djleODZhev@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

pruebala asi

select
a.datsem,
bl.blonom,
a.datfec,
a.dathor,
a.dattem
from
dataloger a,
(select
datsem,
datfec,
max(dattem) as dattem
from
dataloger
group by
datsem,
datfec) as b,
bloque bl
where
a.datsem=b.datsem and
a.datfec=b.datfec and
a.dattem=b.dattem and
a.datblocod=bl.blocod
order by
datblocod,
datsem,
datfec

El 19 de julio de 2010 13:40, Fernando Siguenza <fsigu(at)hotmail(dot)com>escribió:

> Gracias felipe si eso ya lo corregi el nombre del campo pero te muestro el
> error completo para que lo veas
>
>
> ERROR: referencia a la entrada de la cláusula FROM para la tabla «a» no
> válida
> LINE 13: inner join bloque on a.datblocod=bloque.blocod
> ^
> HINT: Hay una entrada para la tabla «a», pero no puede ser referenciada
> desde esta parte de la consulta.
>
> La consulta que uso es la siguiente
>
> select
> a.datsem,
>
> blonom,
> a.datfec,
> a.dathor,
> a.dattem
> from dataloger a,
> (select datsem,datfec,max(dattem) as dattem
> from dataloger
> group by datsem,datfec
> ) as b
> inner join bloque on a.datblocod=bloque.blocod
> where a.datsem=b.datsem and
>
> a.datfec=b.datfec and
> a.dattem=b.dattem
> order by datblocod,datsem,datfec
>
> Saludos
>
> ------------------------------
> Date: Mon, 19 Jul 2010 13:33:01 -0500
>
> Subject: Re: [pgsql-es-ayuda] Ayuda con group by
> From: pipelx(at)gmail(dot)com
> To: pgsql-es-ayuda(at)postgresql(dot)org
>
>
>
> Lo que te esta diciendo el error es que estas llamando un campo que no
> existe en la tabla dataloger,
> en este caso el campo datset, que no lo veo por ningun lado.
>
> select
> a.datset, --- ESTE no sera datsem????
>
>
> El 19 de julio de 2010 13:23, Fernando Siguenza <fsigu(at)hotmail(dot)com>escribió:
>
> Gracias felipe ahi si se ejecuto mucho mas rapito la consulta, quisiea ver
> si me puedes ayudar con algo, con la siguiente estructura dela tabla
>
> CREATE TABLE dataloger
> (
> datano integer NOT NULL,
> datsem integer NOT NULL,
> datnum integer NOT NULL,
> datfec date,
> dathor time without time zone,
> dattem numeric(10,2) NOT NULL,
> dathum numeric(10,2),
> datdew numeric(10,2),
> datblocod character varying(5) NOT NULL, -- Codigo de la localidad a la
> que corresponde las mediciones
> CONSTRAINT "dataloger_PK" PRIMARY KEY (datano, datsem, datnum,
> datblocod),
> CONSTRAINT "dataloger_bloque_FK" FOREIGN KEY (datblocod)
> REFERENCES bloque (blocod) MATCH SIMPLE
> ON UPDATE NO ACTION ON DELETE NO ACTION
> )
>
> lo que quiero es tener por bloque(que es la localidad donde se toma las
> temperaturas) la temperaturta maxima y minima de cada dia y a que hora fue
> esta, para eso uso la consulta que me indicaste ya acoplada al los campos
> que tengo
>
> select
> a.datset,
> blonom,
> a.datfec,
> a.dathor,
> a.dattem
> from dataloger a,
> (select datfec,max(dattem) as dattem
> from dataloger
> group by datfec) as b
> inner join bloque on blocod=a.datblocod
> where a.datfec=b.datfec and
> a.dattem=b.dattem
>
> Pero tengo este error
> ERROR: referencia a la entrada de la cláusula FROM para la tabla «a» no
> válida
>
> como seria para poder obtener el nombre de la bloque o localidad en este
> caso incluido ene l resultado
>
> Saludos
>
>
>
>
> ------------------------------
> Date: Mon, 19 Jul 2010 13:10:21 -0500
>
> Subject: Re: [pgsql-es-ayuda] Ayuda con group by
> From: pipelx(at)gmail(dot)com
>
> To: fsigu(at)hotmail(dot)com
>
>
>
> 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
>
> ------------------------------
> Explore the seven wonders of the world Learn more!<http://search.msn.com/results.aspx?q=7+wonders+world&mkt=en-US&form=QBRE>
>
>
>
>
> --
> fElIpE
>
> ------------------------------
> Discover the new Windows Vista Learn more!<http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE>
>

--
fElIpE

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2010-07-19 18:55:22 Re: Cuantos locks son muchos locks?
Previous Message Felipe Hernández 2010-07-19 18:33:01 Re: Ayuda con group by