Пронумеровать дубликаты каждого значения [дубликат]
Мне нужно добавить столбец в мою таблицу с подсчетом каждого появления. Итак, если значение уникально, значение столбца должно быть 1, но если есть несколько копий, мне нужно другое значение для каждой строки (1,2 ...)
Например, база данных postgres
мне бы | ценность | считать |
---|---|---|
1 | а | 1 |
2 | а | 2 |
3 | б | 1 |
4 | б | 2 |
5 | б | 3 |
6 | c | 1 |
пример базы данных https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696
Ответы
5 a_horse_with_no_name
Это можно сделать с помощью оконных функций.
select id, value, count(*) over (partition by value order by id)
from the_table
order by id, value;