首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取具有GROUP BY的最大行?

如何获取具有GROUP BY的最大行?
EN

Stack Overflow用户
提问于 2018-06-25 16:05:32
回答 1查看 86关注 0票数 -1

我有一个SQL表,它是这样构建的:

项目:

代码语言:javascript
复制
Id         ItemId     VersionId
---------- ---------- ----------
1          1          1
2          1          2
3          1          3
4          2          1
5          2          2
6          3          1

现在我想使用linq选择每个项目的最新版本。预期输出为:

代码语言:javascript
复制
Id         ItemId     VersionId
---------- ---------- ----------
3          1          3
5          2          2
6          3          1

每个条目都有自己的版本计数,因此创建条目1的新版本将使其VersionId为4,而创建条目3的新版本将使其VersionId为2。

到目前为止,我已经尝试选择项,然后使用GroupBy:

代码语言:javascript
复制
var query = from i in items
            select i;

var test = query.GroupBy(q => q.ItemId).ToList();

这将返回一个包含3个组的列表,每个项目对应一个组。

现在,我如何继续并仅从这些组中获取最新版本的项目列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 16:08:57

如果您想要最高版本,您可以对每个组进行排序,排序后只取最高版本:

代码语言:javascript
复制
var test = query.GroupBy(q => q.ItemId)
                .Select(group => group.OrderByDescending(g => g.VersionId).First())
                .ToList();
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51018781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档