代码之家  ›  专栏  ›  技术社区  ›  John Humphreys

使用查询查找表中列子集的所有重复项(&C)

  •  2
  • John Humphreys  · 技术社区  · 12 年前

    有人能告诉我我在这里做错了什么,以及如何使查询工作吗?

    我正在尝试为所有记录返回{OrgID,IdentifierTypeID,IdentifierCorder,ValidFrom},其中这4列是重复的,同时还有重复的计数。我只想在结果集中显示重复项,这就是我尝试>1部分。

    select count(*) Number, OrgID, IdentifierTypeID, IdentifierOrder, ValidFrom
        from xdb.dbo.OrganizationIdentifier_IngestII
        where Number > 1
        group by OrgID, IdentifierTypeID, IdentifierOrder, ValidFrom
    
    1 回复  |  直到 12 年前
        1
  •  1
  •   Joe Stefanelli    12 年前

    您可以使用HAVING子句来测试聚合函数的结果。此外,您不能在该测试中使用列别名(Number),因此需要重复该函数。

    SELECT COUNT(*) AS Number, OrgID, IdentifierTypeID, IdentifierOrder, ValidFrom
        FROM xdb.dbo.OrganizationIdentifier_IngestII
        GROUP BY OrgID, IdentifierTypeID, IdentifierOrder, ValidFrom
        HAVING COUNT(*) > 1;