C# linqによる最大値の行のレコード取得

C#

・最大値取得のサブクエリ

var subquery = db.tabX
  .GroupBy(s => s.Id)
  .Select(g => new
  {
    Id = g.Key,
    SubId = g.Max(s => s.SubId)
  });

・最大値の行のレコード取得クエリ

var query = db.tabX
  .Join(
    subquery,
    t => new { t.Id, t.SubId },
    s => new { s.Id, s.SubId },
    (t, s) => new tabX
    {
      Id = t.Id,
      SubId = t.SubId,
      Name = t.Name
    })
  .OrderBy(t => t.Id);

コメント

タイトルとURLをコピーしました