J'aimerais afficher le numéro d'observation de chaque enregistrement renvoyé par une requête PostgreSQL.
Je pense qu'en 8.4, les fonctions de fenêtrage peuvent exécuter cette capacité.
select row_number() over (order by <field> nulls last) as rownum, *
from foo_tbl
order by <field>
Si l'ordre n'est pas nécessaire, cette réponse peut également être simplifiée:
select row_number() over(), * -- notice: no fields are needed
from foo_tbl
Pour les versions antérieures à 8.4:
SELECT count(*) rownum, foo.*
FROM datatable foo
JOIN datatable bar
ON (foo.pk_id < bar.pk_id)
GROUP BY foo.pk_id, foo.a, foo.b
ORDER BY rownum
;
-- if there isn't a single unique/primary key field, you can concatenate fields
-- Example: ON (foo.a||foo.b||foo.c < bar.a||bar.b||bar.c)
J'espère que ça aide quelqu'un.