如何返回仅存在特定列中的重复项的行?

时间:2014-07-17 16:44:57

标签: mysql sql

假设我的数据库类似于以下内容:

First Entry | Second Entry | Third Entry
    0              0              0
    0              1              2
    2              1              0 
    2              0              1
    3              0              0

我正在尝试返回此表的子集,其中FirstEntry列中的元素至少重复一次。所以在这种情况下它会返回除最后一行之外的所有行。我怎么能这样做?我尝试过使用诸如count()之类的东西,但只是设法实现了分组,而不是返回我很好奇的实际行(特别是,我关心的是第二次和第三次进入,但只有当第一次进入重复时至少一次)。

2 个答案:

答案 0 :(得分:4)

使用IN()

select * from your_table
where FirstEntry in
(
   select FirstEntry 
   from your_table
   group by FirstEntry 
   having count(*) > 1
)

或使用JOIN

select t1.* 
from your_table t1
join
(
   select FirstEntry 
   from your_table
   group by FirstEntry 
   having count(*) > 1
) t2 on t1.FirstEntry = t2.FirstEntry 

答案 1 :(得分:0)

试试这个:

select *
from my_table
where First_Entry IN(SELECT First_Entry From my_table 
group by First_entry having count(*) > 1)