Sql 使用LINQ跨多个列选择重复行
我试图在数据库中跨多个列查找重复行 下面的SQL查询给出了247行的结果Sql 使用LINQ跨多个列选择重复行,sql,vb.net,linq,Sql,Vb.net,Linq,我试图在数据库中跨多个列查找重复行 下面的SQL查询给出了247行的结果 select Lastname, EmailAddress, count(*) from leads where EmailAddress IS NOT null and isDeleted <> 'True' group by lastname, emailaddress having count(*) > 1 选择姓氏、电子邮件地址、计数(*) 来自EmailAddress不为null且被删除
select Lastname, EmailAddress, count(*)
from leads where EmailAddress IS NOT null and isDeleted <> 'True'
group by lastname, emailaddress having count(*) > 1
选择姓氏、电子邮件地址、计数(*)
来自EmailAddress不为null且被删除为“True”的Lead
按姓氏分组,电子邮件地址的计数(*)大于1
我认为vb.net中的以下内容应该返回相同数量的行,但是我得到了201个结果
Dim duplicates = db.Leads.Where(Function(p) p.EmailAddress <> Nothing
And p.isDeleted <> True)
.GroupBy(Function(i) New With {i.EmailAddress, i.LastName})
.Where(Function(g) g.Count() > 1)
.[Select](Function(g) g.Key)
Dim duplicates=db.Leads.Where(函数(p)p.EmailAddress Nothing
和p.isDeleted True)
.GroupBy(函数(i)带有{i.EmailAddress,i.LastName}的新函数)
.Where(函数(g)g.Count()>1)
[选择](功能(g)g键)
它们是否都返回相同数量的行?尝试以下语法:
Dim duplicates = From p In db.leads Where
p.EmailAddress <> Nothing And
p.isDeleted <> True Group By
p.EmailAddress, p.LastName Into
grp = Group Where (grp.Count() > 1)
Dim duplicates=从p到db.leads,其中
p、 电子邮件地址没有和
p、 按组删除真值
p、 电子邮件地址,p.LastName输入
grp=组,其中(grp.Count()>1)
您分组依据的列在每个查询中都会反转。在SQL查询中,有lastname和emailaddress,然后在linq中有emailaddress和lastname。