我有下表,其中包含两列,如下所示:
CREATE TABLE test_lin
(
Cola INT,
Colb INT
);
INSERT INTO test_lin VALUES(1,2);
INSERT INTO test_lin VALUES(1,3);
INSERT INTO test_lin VALUES(1,4);
INSERT INTO test_lin VALUES(1,5);
INSERT INTO test_lin VALUES(1,3);
INSERT INTO test_lin VALUES(2,4);
INSERT INTO test_lin VALUES(2,6);
INSERT INTO test_lin VALUES(2,7);
INSERT INTO test_lin VALUES(2,4);
INSERT INTO test_lin VALUES(2,6);
注意:现在我只想显示那些重复多次的记录。就像我的情况一样,(1,3),(2,4),(2,6)
记录在表中重复。
我想从结果集中删除单次出现的记录。单次出现的记录如下图所示。
最佳答案
WITH CTE as
(
SELECT Cola,Colb,ROW_NUMBER() OVER(PARTITION BY Cola,Colb ORDER BY Cola) AS RN
FROM test_lin
)
SELECT T.*
FROM test_lin T INNER JOIN CTE C ON C.COLa = t.Cola and C.COLb = t.Colb and c.RN=2
关于sql-server - SQL 服务器 2008 R2 : Remove single occurrence record.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32857662/