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

标签 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() 之类的东西,但只设法实现分组而不是返回我好奇的实际行(特别是,我关心第二个和第三个条目,但只有当第一个输入至少重复一次)。

最佳答案

使用 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 

关于mysql - 如何返回特定列中仅存在重复项的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809171/

相关文章:

sql - 如何通过运算符(operator)从 Hive 组中获取元素数组/包?

mysql 加速 500,000 行表中的查询

mysql - Laravel SQLSTATE[HY000] [1698] 用户 'root' @'localhost' 的访问被拒绝

MySQL 按数字排序,最后是 Null

sql - 在 SQL Server 中连接字符串 + 日期

java - 在 Eclipse 中,如何获取 Java 字符串中的 SQL 文本?

mysql - MySQL 中列的条件文本连接。一些短语完全匹配,另一些正则表达式

php - 如何对具有多个值的字段的 MySQL 表进行排序

mysql - 给出三个表之间的匹配 SQL

sql - 如何将 group by 与应始终包含的值一起使用?