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;