.net - order by后如何从每组中选择前1名

标签 .net linq tsql

我有 3 列/字段作为通用列表的一部分:strID、seq、unit
有一堆属于同一单元的 strID,并且每个都有不同的 seq。我对每个 unit 具有最小 seq 的行(该组的领导者)感兴趣。我如何使用 LINQ 查询来完成此任务(tsql 查询也可以)?

以下是示例数据:

  strID, seq, unit
    aaa, 3, 1
    bbb, 2, 1
    ccc, 4, 1
    ddd, 8, 2
    eee, 15,2
    fff, 7, 2

我的查询将得到以下结果:

leaderID, unit
bbb, 1
fff, 2

最佳答案

source
  .GroupBy(row => row.unit)
  .Select(g => g.OrderBy(row => row.seq).First());

关于.net - order by后如何从每组中选择前1名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3373984/

相关文章:

c# - 如何解决 LINQ to Entities 无法识别方法 'System.String ToString()' 方法?

c# - 扩展方法和编译时检查

SQL TOP 5000 比结果行数少于 5000 的普通查询快?

sql四舍五入到5的倍数?

c# - 我可以在 app.config 文件中添加条件吗?

.net - 使用 Windows Azure SDK 1.8 和 Windows Azure Tools 打包云项目时出错 2012 年 10 月

c# - ToString() 在这里是好是坏还是多余?

c# - 为什么非静态类中的静态方法不能成为扩展方法?

LINQ 与 SQLite (linqtosql)

sql - TSQL 计算多列中的出现次数