通过计数与组进行 Linq

Posted

技术标签:

【中文标题】通过计数与组进行 Linq【英文标题】:Linq with group by having count 【发布时间】:2011-01-05 22:19:21 【问题描述】:

如何在 linq (vb.net) 中编写此查询?

 select B.Name
 from Company B
 group by B.Name
 having COUNT(1) > 1

【问题讨论】:

***.com/questions/1333265/…的可能重复 【参考方案1】:

像这样:

from c in db.Company
group c by c.Name into grp
where grp.Count() > 1
select grp.Key

或者,使用方法语法:

Company
    .GroupBy(c => c.Name)
    .Where(grp => grp.Count() > 1)
    .Select(grp => grp.Key);

【讨论】:

感谢您提供两种形式的语法! :D 感谢您的解决方案 简单准确,谢谢【参考方案2】:

对于希望在 vb 中执行此操作的任何人(就像我一样,但找不到任何东西)

From c In db.Company 
Select c.Name Group By Name Into Group 
Where Group.Count > 1

【讨论】:

我很难理解为什么Group By 在VB 中的Select 子句之后。【参考方案3】:

以下解决方案可能会对您有所帮助。

var unmanagedDownloadcountwithfilter = from count in unmanagedDownloadCount.Where(d =>d.downloaddate >= startDate && d.downloaddate <= endDate)
group count by count.unmanagedassetregistryid into grouped
where grouped.Count() > request.Download
select new

   UnmanagedAssetRegistryID = grouped.Key,
   Count = grouped.Count()
;

【讨论】:

这与问题有什么关系?

以上是关于通过计数与组进行 Linq的主要内容,如果未能解决你的问题,请参考以下文章

Linq 得到条件计数

SAS中如何分组计数,并将值保存到宏变量

如何使用linq获取表中值的计数

LINQ 根据计数 >1 的另一列获取列

Linq 不重复计数

计数错误,但我没有在我的 LINQ 表达式中使用计数,