Hola amigos, les solicito ayuda para lo siguiente, tengo una tabla que
contiene estos datos:
postg...@contable[localhost]=# select idgrupo,grupo from cc_grupos;
idgrupo | grupo
---------+---------------
4 | LAS PAGADORAS
5 | BACILADORAS
1 | ABCD
3 | DENOMINACION
(4 filas)
Entonces quiero mantener un campo que despues de ordenados los registros,
mantega un consecutivo respectivo a su fila:
postg...@contable[localhost]=# begin; create sequence s; select nextval('s')
as offset,x.idgrupo,x.grupo from (select cc.idgrupo,cc.grupo from cc_grupos
cc order by cc.grupo) x;rollback;
BEGIN
CREATE SEQUENCE
offset | idgrupo | grupo
--------+---------+---------------
1 | 1 | ABCD
2 | 5 | BACILADORAS
3 | 3 | DENOMINACION
4 | 4 | LAS PAGADORAS
(4 filas)
Hasta esta parte todo va perfecto, mi duda es con respecto a cuando filtro
esta tabla resultante, ya que si yo le digo que me de la fila donde el
idgrupo sea igual a 5,
en teoria debo obtener:
offset | idgrupo | grupo
--------+---------+---------------
2 | 5 | BACILADORAS
pero, no es asÃ, al hacer:
postg...@contable[localhost]=# begin; create sequence s; select * from
(select nextval('s') as offset,idgrupo,grupo from (select idgrupo,grupo from
cc_grupos order by grupo) x ) xx where idgrupo=5;rollback;
obtengo lo siguiente:
BEGIN
CREATE SEQUENCE
offset | idgrupo | grupo
--------+---------+-------------
1 | 5 | BACILADORAS
(1 fila)
ROLLBACK
en que me estoy equivocando?, o por que es que no regresa 2 en la columna
offset?.