【问题标题】:select all by clause and group by element按子句全选并按元素分组
【发布时间】:2014-05-22 21:31:39
【问题描述】:

我不认为这是重复的。我想返回多个记录,每个记录都具有给定类型的最大日期。我可以做到这一点是几行我只是想知道是否可以一次完成?

所以我有一张桌子

int, DateTime, varchar, int
id,  date,     message, type
1,   2000-1-1, hello,   2
2,   2000-1-2, goodby,  1
3,   2000-1-1, again,   1

有没有办法为每种类型返回最旧的记录? 所以这将是记录 id 2 和 id 1

【问题讨论】:

标签: linq linq-to-sql


【解决方案1】:

您可以按type 对数据进行分组,然后按date 对每个组进行排序并取出第一项。

var result = yourTable.GroupBy(d => d.type)
                      .Select(g => g.OrderByDescending(x => x.date).First());

【讨论】:

  • 这是一件美丽的事情。我做了三个丑陋的线条来做这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多