给定以下数据,如何使用 LINQ 为每一项仅选择最新版本?
ItemId, Version
===================
A, 1
A, 2
A, 3
B, 8
B, 9,
C, 10
C, 11
期望的结果是:
A, 3
B, 9
C, 11
在 TSQL 中,我会这样做:
SELECT * FROM MyTable AS Tbl1
WHERE Tbl1.Version =
(SELECT MAX(Version)
FROM MyTable
WHERE MyTable.ItemId = Tbl1.ItemId)
最佳答案
我会选择类似的东西:
MyTable
.GroupBy(row => row.ItemId)
.Select(grouping =>
new
{
ItemId = grouping.Key,
Version = grouping.Max(row => row.Version),
});
编辑:修复了错误的 SQL 输出。
关于sql - 如何在 Linq to Sql 的子查询中选择 MAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6681541/