这个问题是对hx 1 e0f1x的进一步的问题。除了最大值和组键,我还需要行的每一列(包括最重要的一列:ID)。
例如,给定学生表
| ID|名称|类|评分|
| --|--|--|--|
| 1 |N0| C0| 0 |
| 2 |N1| C0| 1 |
| 3 |N2| C1| 1 |
| 4 |N3| C1| 2 |
| 5 |N4| C1| 3 |
| 6 |N5| C2| 4 |
| 7 |N6| C2| 5 |
为了让整排最高分的学生按班级分组,我想出了一个方法,但不满意它的简单性:
from o in Students
join o1 in
(from oo in Students
group oo by oo.Class
into g
select new { Class = g.Key, MaxScore = g.Max(x => x.Score)})
on o.Class + o.Score equals o1.Class + o1.MaxScore
select o
字符串
我的问题是:有没有更简单的方法来实现以上使用LINQ或原始MSSQL?
2条答案
按热度按时间vmdwslir1#
你可以做一些事情,比如从分组中选择,这应该使用窗口函数。
字符串
另一种选择,它不会给给予捆绑的结果
型
xdnvmnnf2#
你也可以像这样拆分它:
1.将学生按班级分组,并找出每个班级的最高分。
1.加入学生在各自班级中获得最高分数的原始列表。