すべての値の重複を数えます[重複]

Jan 12 2021

のすべての出現回数を含む列をテーブルに追加する必要があります。したがって、値が一意である場合、列の値は1である必要がありますが、複数のコピーがある場合は、行ごとに異なる値が必要です(1,2 ...)

たとえば、データベースはpostgresです。

id カウント
1 a 1
2 a 2
3 b 1
4 b 2
5 b 3
6 c 1

データベースの例 https://dbfiddle.uk/?rdbms=postgres_10&fiddle=0e7132f3f094bd93b390ccae2e811696

回答

5 a_horse_with_no_name Jan 12 2021 at 16:49

これは、ウィンドウ関数を使用して実行できます

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