我有一个查询,返回以下行:
StateId,OrderId,OrderTime,PermitId
我只需要返回全盘完全重复的行,因此每条记录必须与另一条记录完全相同,这样它才可以重复。我想退回两个记录。这些记录与一堆没有重复的记录混在一起…
任何的想法?
首先,确定重复项。其次,重新加入以提取这些行。
非聚集(或非窗口/排名)自连接形成部分交叉连接,并为任何一组键给出重复的平方。也包括非重复项。毕竟1 x 1 = 1。
SELECT t2.* FROM ( SELECT StateId, OrderId, OrderTime, PermitId FROM myTable GROUP BY StateId, OrderId, OrderTime, PermitId HAVING COUNT(*) >= 2 ) T1 JOIN mytable T2 ON T1.StateId = T2.StateId AND T1.OrderId = T2.OrderId AND T1.OrderTime = T2.OrderTime AND T1.PermitId = T2.PermitId