Ponumeruj duplikat każdej wartości [duplikat]

Jan 12 2021

Muszę dodać do mojej tabeli kolumnę z liczbą wszystkich wystąpień. Więc jeśli wartość jest unikalna, wartość kolumny powinna wynosić 1, ale jeśli istnieje wiele kopii, potrzebuję innej wartości dla każdego wiersza (1,2 ...)

Baza danych to na przykład postgres

ID wartość liczyć
1 za 1
2 za 2
3 b 1
4 b 2
5 b 3
6 do 1

przykład bazy danych https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696

Odpowiedzi

5 a_horse_with_no_name Jan 12 2021 at 16:49

Można to zrobić za pomocą funkcji okna

select id, value, count(*) over (partition by value order by id) 
from the_table
order by id, value;