识别组合的重复出现次数并将计数分配给1

时间:2013-07-25 23:37:27

标签: sql count duplicates

我需要帮助我的SQL代码来识别重复序列的出现。比方说,例如我的表结构是这样的:

Name   E_Date Maker    Status
----   ------ -----    ------
John   Apr-6  Apple    Success
Peter  Apr-6  Apple    Success
John   Apr-6  Apple    Success
Peter  Apr-7  Samsung  Success
John   Apr-6  Samsung  Success
John   Apr-6  Apple    Failure
Peter  Apr-6  Apple    Success
John   Apr-6  Apple    Success

所以上面的记录有4列/维,你可以看到John Apr-6 Apple Success有三次出现。我的SQL代码应该计算这个并指定rec_cnt = 3和dup_cnt = 1

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您需要使用GROUP BY和COUNT:

SELECT Name, E_Date, Maker, Status, COUNT(*) AS Rec_Cnt
  FROM AnonymousTable
 GROUP BY Name, E_Date, Maker, Status

在确定如何生成dup_cnt之前,我也不会尝试对此进行评估。

我还观察到你的表没有主键,这通常是个坏主意。您应该确保有一些方法可以防止表中的重复条目。如果最坏的情况发生,你会添加一个无处不在的ID列,但是如果有替代方案,你应该优先使用它。