c# - 如何在 C# 中编写 LINQ 查询行号?
问题描述
SQL:
Select top percent a,b,ROW_NUMBER() over(PARTITION BY a,b order by a,b) as rowsnumber
from Students as s
group by a,b
林克:
var students=from p in Students
group p by new{p.a,p.b} into grp
order by grp.Key.a,grp.Key.b
.Select(s=>s.a,s.b).ToList();
我想将此 SQL 查询转换为 LINQ 但不转换。
解决方案
我将您的 sql 查询转换为 lambda。
var students = context.GroupBy(g => new { g.A, g.B }).Select((s, index) => new {
s.Key.A,
s.Key.B,
rowsnumber = index + 1
}).Take(10).ToList();
Group by 的工作方式类似于 partition by。
索引从 0 开始,所以转换为行号需要加
1。Take 是选择 TOP 10 行。
推荐阅读
- javascript - 尽管我在控制台记录了它并且没有显示错误,但我的附加似乎不起作用(新手问题)
- python - 合并包含列表对象的 Pandas 列
- mysql - 获取与 MAX 列关联的其他列
- javascript - KnockoutJS:显示 HTML - 填充 HTML
- html - 如何让 div 填满整个屏幕(砌体/Pinterest)布局
- php - 在客户端遍历多维数组数据时,在 php 中填充模板视图的最简洁方法是什么?
- c# - UWP 将 IF 语句转换为 NavigationViewItems 的 foreach 循环
- c# - 异步读取图像文件
- c - printf 的问题 - 不打印 put 整数值
- r - 表格不在 Rmd 笔记本中编织和打印?