Numéroter en double de chaque valeur [en double]
Je dois ajouter une colonne à ma table avec le nombre de chaque occurrence de. Donc, si la valeur est unique, la valeur de la colonne doit être 1, mais s'il y a plusieurs copies, j'ai besoin d'une valeur différente pour chaque ligne (1,2 ...)
La base de données est postgres par exemple
id | valeur | compter |
---|---|---|
1 | une | 1 |
2 | une | 2 |
3 | b | 1 |
4 | b | 2 |
5 | b | 3 |
6 | c | 1 |
exemple de base de données https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696
Réponses
5 a_horse_with_no_name
Cela peut être fait en utilisant les fonctions de fenêtre
select id, value, count(*) over (partition by value order by id)
from the_table
order by id, value;