Message posté par : Nicolas Ribot
----------------------------------------
Bonjour,
assez d'accord avec p.jeremie sur les id.
Pas besoin de séquence pour faire cela, utilisez plutot les windows functions (un peu
complexe à appréhender, mais super puissant pour traiter/analyse les données:
https://www.postgresql.org/docs/12/tutorial-window.html).
Ca permet de définir des groupes, comme group by, mais en gardant toutes les lignes dans
le select (ce que ne permet pas le group by)
-----------------
Code :
with tmp as (
select * from (
values ('10001'),
('10001'),
('10002'),
('10002'),
('10004'),
('10004'),
('10004'),
('10004'),
('10005'),
('10005'),
('10005')) as v(insee)
) select insee, row_number() over w as idx,
format('%s_%s', insee, row_number() over w) as newid
from tmp
window w as (partition by insee);
-----------------
Là, comme la partition est utilisée deux fois dans le select, elle est mise à la fin de la
requête pour ne la défnir qu'une fois. row_number() est une des windows functions
disponibles.
Nicolas
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=359246#p359246
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net