的状态可以说,我们有4个领域检查重复的记录
id (INT 11 AUTO_INC)
email (VAR 50)
timestamp (INT 11)
status (INT 1)
命名record
表和表包含以下数据
现在我们可以看到的电子邮件地址[email protected]被复制了4次(时间戳最低的记录是原始记录,之后的所有副本都是重复记录)。多少次使用
SELECT email, count(id) FROM record GROUP BY email HAVING COUNT(id)>1
我可以很容易地计算使用
SELECT COUNT(DISTINCT email) FROM record
了独特的记录数我也可以很容易找到的电子邮件地址被复制但现在的商业问题是
如何所有重复记录中有多次STATUS
是1?
例如:
- 对于[email protected]有具有状态1
- 没有重复记录对于[email protected]有具有1个重复的记录状态1
- 对于第三@ example.com有1个重复的记录,状态为1
- 对于[email protected],没有重复记录状态为1
- 对于[email protected],有2个重复记录状态为1
因此,所有的数字之和是0 + 1 + 1 + 0 + 2 = 4
这意味着有其中有status = 1
在表4点中重复的记录
问题
多少重复的记录有状态= 1?
考虑提供一个sqlfiddle(或适当的ddls无论如何) – Strawberry
关于你的答案的临时评论http://stackoverflow.com/a/18307508/285587 - 与()数组上的这个事情是不正确的,而你的答案在技术上是正确的。 –
@YourCommonSense谢谢,我知道从5.5开始,'()'概念可以用于访问数组值,因此我删除了我的答案并向上投票。再次感谢:) –