【问题标题】:Find duplicate column value in sqlite在 sqlite 中查找重复的列值
【发布时间】:2014-02-24 06:04:37
【问题描述】:

我在表DataTab 中插入了一些值。

SomeId: Integer     => Autogenerated primary key.
DataId: Guid
DataNumber: Integer
DataType: varchar

以上是我的表格中的列,我想查找,如果表格包含重复的DataId 值。 我使用数据库已经很长时间了。现在我可以找出简单的查询。但我发现这有些困难。

我尝试了以下查询,是否正确?

SELECT * from (Select * from DataTab) AS X 
where DataId= X.DataId AND SomeId!=X.SomeId

【问题讨论】:

    标签: database sqlite


    【解决方案1】:
    SELECT DataId, COUNT(*) c FROM DataTab GROUP BY DataId HAVING c > 1;
    

    【讨论】:

    • 如果我想检查一条记录的 DataId 和 DataNumber 是否相同,那么查询将如下所示,SELECT DataId, COUNT(*) c FROM DataTab GROUP BY DataId,DataNumber HAVING c > 1 ,, 我说的对吗?
    • SELECT DataId,DataNumber,COUNT(*) c FROM DataTab GROUP BY DataId,DataNumber HAVING c > 1. 因为无论您按什么字段分组,都应该在 select 语句中添加。
    • 如果您发现它符合您的期望/解决了您的问题,请按照 stackoverflow 指南进行投票。
    • 谢谢,像魅力一样工作^^
    【解决方案2】:

    我已经在我的应用程序中使用了它。它正在根据您的查询工作

    SELECT a.* 
    FROM CENTERDETAILS a 
    JOIN 
    (SELECT IPADDR, MACID, COUNT(*) 
        FROM CENTERDETAILS  
        GROUP BY IPADDR, MACID 
        HAVING count(*) > 1
    ) b ON a.IPADDR = b.IPADDR OR a.MACID = b.mac 
    ORDER BY a.MACID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 2019-11-10
      相关资源
      最近更新 更多