[英]How to apply Count on multiple distinct columns and use Having clause
我想做这样的事情,但得到一个错误请提出一些好的方法?
select A,B,C, count(Distinct A,B,C)
from table_name
group by A,B,C
having count(Distinct A,B,C) > 1
基本上我有一个列(A,B,C)的索引,有些行没有这个独特的组合集,所以我正在尝试类似的查询来识别违反唯一约束的行。 如果有最好的方法,请告诉我
如果按这些列分组,那么您只能获得这些唯一记录,然后您可以使用count(*)
来获取您拥有的重复数量
select A,B,C, count(*)
from table_name
group by A,B,C
HAVING count(*) > 1
@jurgend说的是对的,你可以通过这样做进一步找到确切的行(我假设有更多的字段可以查看,包括可能是PK)
SELECT *
FROM table_name
WHERE (A,B,C) IN (
SELECT A, B, C
FROM table_name
GROUP BY A, B, C
HAVING COUNT(*) > 1
)
Tuple IN
列表查询在Oracle中有效,但并非所有其他DBMS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.