如何将此 GROUP BY / MIN SQL 查询转换为 LINQ?

Posted

技术标签:

【中文标题】如何将此 GROUP BY / MIN SQL 查询转换为 LINQ?【英文标题】:How do I translate this GROUP BY / MIN SQL query into LINQ? 【发布时间】:2010-10-13 20:21:01 【问题描述】:

我计划在子查询中使用它,但无法找出将以下查询转换为 LINQ 的正确语法:

select ChapterID, min(MeetingDate)
from ChapterMeeting
group by ChapterID

【问题讨论】:

【参考方案1】:
var query = myDataContext.ChapterMeeting
  .GroupBy(cm => cm.ChapterID)
  .Select(g => new 
      g.Key,
      MinMeetingDate = g.Min(cm => cm.MeetingDate)
  );

【讨论】:

【参考方案2】:

嗯,Amy 比我快,但如果你想用“理解”语法来查看它:

var q = (
    from cm in context.ChapterMeeting
    group cm by cm.ChapterID into cmg
    select new 
        ChapterID = cmg.Key,
        FirstMeetingDate = cmg.Min(cm => cm.MeetingDate));

【讨论】:

您能否对您的答案进行更改编辑(“将 cm 按 cm.ChapterID 分组为 cmg”)?我还不能编辑 :)

以上是关于如何将此 GROUP BY / MIN SQL 查询转换为 LINQ?的主要内容,如果未能解决你的问题,请参考以下文章

SQL - GROUP BY和ORDER BY MIN

SQL 10位时间戳 除以60 得到整分钟;group by event_ts/60<==> group by 1min

SQL 10位时间戳 除以60 得到整分钟;group by event_ts/60<==> group by 1min

SQL Group By and min (MySQL)

带有 SQL MIN() 和 GROUP BY 的额外字段

sql查询中如何用group by查询出完整的一行记录?