Sql 找到所有或更多副本的最佳方法是什么?
我需要编写一个查询,它将查找具有2个或更多相同名称的所有行。我写的如下:Sql 找到所有或更多副本的最佳方法是什么?,sql,postgresql,Sql,Postgresql,我需要编写一个查询,它将查找具有2个或更多相同名称的所有行。我写的如下: SELECT name FROM ( SELECT name, COUNT(*) as count FROM partner.propertie GROUP BY name) as t WHERE t.count > 1; 但我不确定这是否是一个最佳的方法。我有一张相当大的桌子…拥有是您想要的: SELECT name FROM partner.propertie G
SELECT name
FROM (
SELECT name, COUNT(*) as count
FROM partner.propertie
GROUP BY name) as t
WHERE t.count > 1;
但我不确定这是否是一个最佳的方法。我有一张相当大的桌子…
拥有
是您想要的:
SELECT name
FROM partner.propertie
GROUP BY name
HAVING COUNT(*) > 1
您可以尝试以下方法:
select * from (
SELECT name,
ROW_NUMBER() OVER(PARTITION BY name ORDER BY name asc) AS Row
FROM partner.propertie
) dups
where
dups.Row > 1
您可以尝试这样的方法“选择名称,count()作为partner.property group by name的count()>1”这是一个很好的答案,但我认为它的性能不会比OP的原始查询更好。