假设我们有一个名为record
4 个字段的表
id (INT 11 AUTO_INC)
email (VAR 50)
timestamp (INT 11)
status (INT 1)
该表包含以下数据
现在我们可以看到电子邮件地址 test@xample.com 被重复了 4 次(时间戳最低的记录是原始记录,之后的所有副本都是重复的)。我可以使用轻松计算唯一记录的数量
SELECT COUNT(DISTINCT email) FROM record
我还可以轻松找出哪个电子邮件地址重复了多少次
SELECT email, count(id) FROM record GROUP BY email HAVING COUNT(id)>1
但现在的商业问题是
STATUS
所有重复记录中的 1 是多少次?
例如:
- 对于 test@example.com,没有状态为 1 的重复记录
- 对于 second@example.com,有 1 条重复记录的状态为 1
- 对于 third@example.com,有 1 条重复记录的状态为 1
- 对于four@example.com,没有状态为1 的重复记录
- 对于 Five@example.com,有 2 条重复记录的状态为 1
所以所有数字的总和是0 + 1 + 1 + 0 + 2 = 4
这意味着有 4 条重复记录status = 1
在表中
问题
有多少 Duplicate 记录的 status = 1 ?