Re: asignar valor creciente

From: Denis González <denis(dot)montenegro(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: asignar valor creciente
Date: 2007-06-15 14:55:12
Message-ID: 4672A850.1090101@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Arturo Munive escribió:
> Oswaldo Hernández escribió:
>> Oswaldo Hernández escribió:
>>> Arturo Munive escribió:
>>>>
>>>> prueba=# select * from codigos;
>>>> codigo | orden
>>>> --------+-------
>>>> 547 |
>>>> 459 |
>>>> 248 |
>>>> 925 |
>>>> 247 |
>>>> 425 |
>>>> (6 rows)
>>>>
>>>>
>>>> pero quisiera que tenga algo asi
>>>>
>>>> codigo | orden
>>>> --------+-------
>>>> 247 | 1
>>>> 248 | 2
>>>> 425 | 3
>>>> 459 | 4
>>>> 547 | 5
>>>> 925 | 6
>>>> (6 rows)
>>>>
>>>> es decir como ordenar la tabla antes de la actualización?, por que
>>>> cuando en estos datos uso lo que me recomendaste entonces
>>>> coloca la secuencia pero no en los códigos ordenados, es decir la
>>>> secuencia de los números debe quedar acorde al código ordenado
>>>> ascendentemente.
>>>
>>> Hace algun tiempo tuve una necesidad parecida y lo resolvi mas o
>>> menos asi (Ojo no esta probado):
>>>
>>> update codigos set ordern = (select count(*) from codigos as c2
>>> where codigos.codigo < c2.codigo) + 1;
>>
>> ERRATA: Cambia el '<' por '>'
>> ( es lo que pasa cuando se hacen las cosas deprisa y no se prueban)
>>
>>>
>>> La idea es que para cada valor de codigo cuente cuantos hay menores
>>> y le asigne este valor + 1 (En caso de que el orden empieze por 1).
>>> Con tablas no muy grandes funcionará bien, si son muy grandes puede
>>> tardar un poco ;)
>>>
>>> Suerte.
>>>
>>
>>
> funcionó, bueno eso de que en tablas grandes demore, es un costo que
> deberé pagar mientras vemos como se puede optimizar, la solución gracias
> --

¿Cuál es el objetivo de enumerar tu salida? Si es para paginar entonces
LIMIT y OFFSET junto con el ORDER BY deberían ser suficientes para
realizar el trabajo.

Un saludo.

Denis González

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Paulina Rodas 2007-06-15 15:32:22 Re: Postgres and Mapserver timeout
Previous Message Raul Andres Duque 2007-06-15 14:47:18 Re: Proyecto N-capas .net con Postgresql