Linq 分组后取每一组时间最新的一条数据

流年sugar / 2023-05-15 / 原文

sql

SELECT * FROM (select ROW_NUMBER()over(partition by Id order by CollTime desc) AS newIndex,* from Table) as T where T.newIndex=1 

结果:

 

lambda

var query = _repository.GetAll().GroupBy(r => r.Id).Select(p => p.OrderByDescending(r => r.CollTime).FirstOrDefault());

 

Linq 

from c in _repository.GetAll()
group c by c.Id into g
select g.OrderByDescending(r => r.CollTime).FirstOrDefault()

参考