从上一篇文章继续:
SQL Query: Display only latest Id from each set
我有以下SQL表:
Name Description Id UserId CreatedDate
UserSet1 Desc1 0 Abc 06/01/2018
UserSet1 Desc2 1 Abc 06/01/2018
UserSet1 Desc4 2 Def 06/02/2018
UserSet2 Desc for 2 5 NewUser 06/04/2018
UserSet2 Desc for 2 7 NewUser 06/19/2018
我要从上表中提取的只是每个名称的最新ID,以便可以获得以下输出
Name Description Id UserId CreatedDate
UserSet1 Desc1 0 Def 06/01/2018
UserSet1 Desc2 2 Def 06/01/2018
UserSet2 Desc for 2 7 NewUser 06/19/2018
因为id 2&7是userset1&userset2表中的最新条目,所以我想显示它而不是表中的所有条目。下面的linq代码解决了这个问题。现在我有另一个要求,也要显示id为零的所有行(见上面的预期结果)。
var results = response
.GroupBy(row => row.Name)
.SelectMany(g => g
.OrderByDescending(row => row.Id)
.Take(1));
如何修改上面的linq,使其显示名称的所有最高的no id和任何id(也为零)。
谢谢