无法使用重复字段查找ID

时间:2015-02-05 15:39:17

标签: sql r sqldf

我的数据如下:

ID  Email
1   someone@hotmail.com
2   someone1@hotmail.com
3   someone2@hotmail.com
4   someone3@hotmail.com
5   someone4@hotmail.com
6   someone5@hotmail.com

每个ID应该只有一封电子邮件,但没有。

> dim(data)
[1] 5071    2
> length(unique(data$Person_Onyx_Id))
[1] 5071
> length((data$Email))
[1] 5071
> length(unique(data$Email))
[1] 4481

所以,我需要找到带有重复电子邮件地址的ID。

看起来这应该很容易,但我很惊讶:

> sqldf("select ID, count(Email) from data  group by ID having count(Email) > 1")
[1] ID count(Email)  
<0 rows> (or 0-length row.names)

我还尝试取消having子句并将结果发送到对象并按count(Email)对对象进行排序......似乎每个ID都有{{ 1}} 1 ...

我会count(Email)实际数据,但由于电子邮件地址的敏感性,我不能。

2 个答案:

答案 0 :(得分:2)

我的猜测是你有NULL封电子邮件。您可以使用count(*)而非count(email)

找到此信息
select ID, count(*)
from data
group by ID
having count(*) > 1;

答案 1 :(得分:2)

您是否也确定没有相反的情况,多个ID使用相同的电子邮件?

select Email, count(*)
from data
group by Email
having count(*) > 1;