如何在PostgreSQL的关联字段中查找重复项?
我在postgresql中有一个具有以下值的表:如何在PostgreSQL的关联字段中查找重复项?,postgresql,Postgresql,我在postgresql中有一个具有以下值的表: KEY VALNO 1 a1 2 x1 3 x2 4 a3 5 a1 6 x2 7 a4 8 a5 9 x6 4 x7 7 a6 键需要唯一的值,但有重复项4,7。VALNO应该为它们分配一个唯一的键,但同一VALNO使用了多个键a1,使用了1和5,x2使用了3和6 我尝试使用以下sql查找重复项,但未能成功 select KEY, VALNO from mbs m1 where (select co
KEY VALNO
1 a1
2 x1
3 x2
4 a3
5 a1
6 x2
7 a4
8 a5
9 x6
4 x7
7 a6
键需要唯一的值,但有重复项4,7。VALNO应该为它们分配一个唯一的键,但同一VALNO使用了多个键a1,使用了1和5,x2使用了3和6
我尝试使用以下sql查找重复项,但未能成功
select KEY, VALNO from mbs m1
where (select count(*) from mbs m2
where m1.KEY = m2.KEY) > 1
order by KEY
有没有更好的方法找到相同的VALNO使用了不同的钥匙,而相同的钥匙使用了不同的VALNO
即
重复VALNO
复制密钥
对于VALNO重复记录,我们可以使用COUNT作为分析函数:
以cte为例
通过VALNO cnt在分区上选择*,计数*
从mbs
选择键,VALNO
来自cte
其中cnt>1;
密钥重复查询的逻辑几乎相同,只是我们可以将其用于计数定义:
COUNT(*) OVER (PARTITION BY "KEY") cnt
KEY VALNO
4 x7
7 a6
COUNT(*) OVER (PARTITION BY "KEY") cnt