【发布时间】:2016-11-21 07:27:58
【问题描述】:
我想知道是否有办法返回部分行的重复项。
IDTable 设置:
ID# | Customer | EventID#
1 | Steve | 123
2 | Steve | 123
3 | John | 987
4 | John | 924
由于史蒂夫和 123 一起出现了两次,我想将其视为“重复”,即使他们有两个不同的 ID#。如果有“重复”,理想情况下我只想返回列:ID#、Customer & EventID#。所以对于上面的IDTable例子,只返回:
1 | Steve | 123
2 | Steve | 123
通过运行以下命令,它分别计算每个 ID + Customer + EventID# 并将所有 Count 值返回为 1(我使用的是 SQL Server 2008):
SELECT ID#, Customer, EventID#, COUNT({fn CONCAT(Customer,EventID#)})
FROM IDTable
GROUP BY ID#, Customer, EventID#
HAVING COUNT({fn CONCAT(Customer,EventID#)}) > 1
如果我从 Select 中取出 ID#,它会起作用,但我们将不知道 ID# 是什么。
编辑: 我正在加入来自其他表的选择列。为了简单起见,我最初将这些排除在外,因为在尝试应用下面的解决方案时我感到困惑。道歉!以下是更符合我正在使用的内容:
SELECT A.ID#, C.Customer, E.EventID#
FROM IDTable A
INNER JOIN CustomerTable C
ON C.AccountID = A.AccountID
INNER JOIN EventTable E
ON E.AccountType = C.AccountType
WHERE C.StatusID = 'Active'
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
标签: sql sql-server count duplicates