我有如下表: -
SampleId1 SampleId2
1 2
1 2
2 2
3 2
1 4
2 4
2 4
3 5
我想找到重复的组合
例如。 SampleId2在前两行上具有SampleId1的重复值
预期结果 :-
SampleId1 SampleId2
1 2
2 4
我试过了 :-
SELECT
SampleId1 , SampleId2, COUNT(*)
FROM
tablename
GROUP BY
SampleId1 , SampleId2
HAVING
COUNT(*) > 1
但是这个查询没有按预期给我结果。
我想你只是不想在你的选择项目计数结果其他明智的你的预期结果和你的查询所有的东西100%正确只是从select中删除count(*)
SELECT
SampleId1 , SampleId2
FROM
t
GROUP BY
SampleId1 , SampleId2
HAVING
COUNT(*) > 1
SampleId1 SampleId2
1 2
2 4
您只想删除查询中的计数,因此您可以尝试使用下面的计数。
SELECT
SampleId1 , SampleId2
FROM
Test_group
GROUP BY
SampleId1 , SampleId2
HAVING
COUNT(1) > 1;
你想获得重复的行,这是解决方案
SELECT a.*
FROM docs a
JOIN (
SELECT SampleId1, SampleId2, COUNT(*)
FROM docs
GROUP BY SampleId1, SampleId2
HAVING count(*) > 1
) b
ON a.SampleId1 = b.SampleId1
AND a.SampleId2 = b.SampleId2
Group BY SampleId1
ORDER BY a.SampleId2
看到结果here