我尝试使用在线解决方案,但没有一个能为我工作。
Table :
Id rank
1 100
1 100
2 75
2 45
3 50
3 50
我希望Ids 1和3返回,因为他们有重复。
我试过像
这样的东西 select * from A where rank in (
select rank from A group by rank having count(rank) > 1
这也返回了没有任何重复的ID。请帮忙。
答案 0 :(得分:4)
试试这个:
select id from table
group by id, rank
having count(*) > 1
答案 1 :(得分:1)
select id, rank
from
(
select id, rank, count(*) cnt
from rank_tab
group by id, rank
having count(*) > 1
) t
答案 2 :(得分:1)
这个总体思路应该有效:
SELECT id
FROM your_table
GROUP BY id
HAVING COUNT(*) > 1 AND COUNT(DISTINCT rank) = 1
用简单的英语:获取多行中存在的每个id
,但所有这些行在rank
中都具有相同的值。
如果您希望id
有某些重复的rank
(但不一定全部),那么这样的事情应该有效:
SELECT id
FROM your_table
GROUP BY id
HAVING COUNT(*) > COUNT(DISTINCT rank)