用自己和自己结合就可以了。"如何统计a,b同时重复,或者c,d同时重复,或者d重复,或者f重复,或者d与f重复的记录一共有多少条呢? " 条件中的"或者d重复,或者f重复,或者d与f重复"不就是重复了吗? d与f重复的话,肯定是d重复而且f重复.select t1.* from table t1,table t2 where t1.rid <> t2.rid and ( (t1.a = t2.a and t1.b = t2.b) or (t1.c = t2.c and t1.d = t2.d) or (t1.d = t2.d) or (t1.f = t2.f) )类似这样。
“如何统计a,b同时重复,或者c,d同时重复,或者d重复,或者f重复,或者d与f重复的记录一共有多少条呢? ”
1.
"a,b同时重复",是说同一条记录的a等于b?还是一条记录的a,b等于另外一条记录的a,b?2.
"或者d重复",只能说一条记录的d等于其他的纪录的d了吧。结果需要的是一个总和?还是各个重复的值?
假如有记录满足你的上面的条件的1个以上,要不要重复计算?
2。是一条记录的d等于其他的纪录的d
3。结果要一个总和
4。不要重复计算
条件中的"或者d重复,或者f重复,或者d与f重复"不就是重复了吗?
d与f重复的话,肯定是d重复而且f重复.select t1.*
from table t1,table t2
where t1.rid <> t2.rid
and (
(t1.a = t2.a and t1.b = t2.b) or (t1.c = t2.c and t1.d = t2.d) or (t1.d = t2.d) or (t1.f = t2.f)
)类似这样。
不知道楼主认为 null 是否需要等于 ''
这个需要注意下
这个地方,你写错了,最后是e与f重复.句子的话,基本上就是上面的样子了。有其他条件的话,自己加吧。
FROM
(SELECT a,b,c,d,e,f,
Count() over (PARTITION BY a,b) AS cnt
FROM table1)
WHERE cnt>=2
ORDER BY a,b,c,d,e,f
select * from table1 where a in (select a from table1 group by a,b having count(1)>1)如果记录多还能优化,先给分,哈哈