繁体   English   中英

如何在多个不同的列上应用Count并使用Having子句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM