Re: un contador en una query

From: Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com>
To: Máximo Eduardo Méndez <mmendez(at)ceride(dot)gov(dot)ar>
Cc: alvherre(at)surnet(dot)cl, systemguards(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: un contador en una query
Date: 2005-05-31 19:26:57
Message-ID: e9b17cde0505311226523ea022@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola, lo de la secuencia lo he descartado por que es deficiente para
este query en particular, ya que la query que mencione inicialmente se
puede estar ejecutando simultaneamente muchas veces, lo unico que
queria o quiero (mejor dicho) es poner adicionalmente a las filas
que me retorne un contador secuencial que se incremente de 0 a n segun
la cantidad de tuplas retornadas

Saludos y gracias

El 31/05/05, Máximo Eduardo Méndez<mmendez(at)ceride(dot)gov(dot)ar> escribió:
> Otra cuestión. El problema que tiene esta solución, es que si en la select ponés un order by, la numeración que forzás con nextval no te quedará en el orden del criterio de ordenamiento, ya que primero calculará el conjunto resultado y posteriormente lo ordena. Si lo que querés es ponerle además un criterio de ordenamiento, se me ocurre que deberías recurrir a una función. Yo probé crear una tabla temporal con la estructura que pretendo en la salida más la columna del orden y mediante un cursor con la select ordenada (sobre la consulta de interés), inserto en la tabla temporal los campos que me interesan más uno calculado (el número de orden) que incremento en cada bucle de recorrido del cursor. No sé si te sirva, pero te lo comento.
>
> Máximo E. Méndez
> CERIDE
>
> 31 May 2005 15:57 ART usted escribio:
>
> > Lo que podrías hacer es tener definida una secuencia y al momento de utilizarla en la salida que deseas, consultas el valor actual (currval()) y lo guardas en una variable xx. De esta manera podrías hacer entonces:
> > select nextval('nombre_sqcuencia') - xx, campo1, campo2, campon from Tabla
> > y la salida siempre empezará desde 1
> >
> > Espero te sirva.
> >
> > Máximo E. Méndez
> > CERIDE
> >
> > 31 May 2005 14:39 ART usted escribio:
> >
> > > El 31/05/05, Alvaro Herrera<alvherre(at)surnet(dot)cl> escribió:
> > > > On Tue, May 31, 2005 at 09:51:12AM -0500, Jaime Casanova wrote:
> > > > > On 5/31/05, Mario Soto Cordones - Venezuela <msotocl(at)gmail(dot)com> wrote:
> > > > > > El 31/05/05, Alvaro Herrera<alvherre(at)surnet(dot)cl> escribió:
> > > > > > > On Tue, May 31, 2005 at 08:08:17AM -0400, Mario Soto Cordones - Venezuela wrote:
> > > > > > >
> > > > > > > > Mi pregunta es :
> > > > > > > >
> > > > > > > > puedo en la consulta incorporar un contador para que la consulta me retorne asi
> > > > > > > >
> > > > > > > > campo1 campo2 campo3 ??
> > > > > > > > mario soto caracas 1
> > > > > > > > juan quintero caracas 2
> > > > > > >
> > > > > > > Has considerado usar una secuencia? Es muy sencillo, solo pones un
> > > > > > > nextval() como parte de la lista de resultados de la consulta.
> > > > > > >
> > > > > > Sip, y aunque es muy sencillo y facil, no es lo que quiero hacer ya
> > > > > > que el orden de aparicion es dinamico, lo doy en el query, por lo que
> > > > > > el el registro 2 no necesariamente seria consecutivo al registro 1 ,
> > > > > > (digo fisicamente en la tabla), es por eso mi pregunta
> > > > >
> > > > > Bajo esas condiciones solo se me ocurre usar una funcion.
> > > >
> > > > Evidentemente Mario solo leyo hasta el primer signo de interrogacion de
> > > > la respuesta que le di.
> > >
> > > lHola lo lei completamente, lo que pasa es que para ello cada vez que
> > > gatillo el query deberia crear una secuencia, o tener la secuencia y
> > > al finalizar el query volver a setearla en 0.... o me equivoco ?????
> > >
> > > Saludos
> > >
> > > >
> > > > --
> > > > Alvaro Herrera (<alvherre[a]surnet.cl>)
> > > > "La principal característica humana es la tontería"
> > > > (Augusto Monterroso)
> > > >
> > >
> > >
> > > --
> > > cordialmente,
> > >
> > > Ing. Mario Soto Cordones
> > >
> > > ---------------------------(fin del mensaje)---------------------------
> > > TIP 8: explain analyze es tu amigo
> >
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> > a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> > a los suscriptores de la lista
>
>

--
cordialmente,

Ing. Mario Soto Cordones

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message roger gue 2005-05-31 19:29:09 Re: Trigger con varias funciones
Previous Message nando.dev 2005-05-31 19:04:46 Problemas comandos en windows XP.