获取具有重复列值的行

时间:2012-02-28 02:53:28

标签: sql

我尝试使用在线解决方案,但没有一个能为我工作。

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。请帮忙。

3 个答案:

答案 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)