Viv*_*ndi 19 c# linq entity-framework
我正在使用以下LINQ从表中选择数据:
(from m in entity.Results
where m.Group == 0 ||
m.Group == 1
orderby m.Points descending
select m);
Run Code Online (Sandbox Code Playgroud)
这给了我所有处于第1组或第2组的用户的结果.我可以显示他们拥有的分数.但这显示了他们分别在第1组和第2组中得到的分数.
我如何对它们进行分组并显示它们的总分?所以不是这个(我现在拥有的):
user1 - group1 - 10
user1 - group2 - 7
user2 - group1 - 7
user2 - group2 - 5
Run Code Online (Sandbox Code Playgroud)
我要这个:
user1 - total: 17
user2 - total: 12
Run Code Online (Sandbox Code Playgroud)
我如何调整我的查询以获得这样的结果集?
dav*_*d.s 22
您需要对用户进行分组,然后使用Sum来计算TotalPoints:
from m in entity.Results
where m.Group == 0 || m.Group == 1
group m by m.User into g
let TotalPoints = g.Sum(m => m.Points)
orderby TotalPoints descending
select new { User = g.Key, Username = g.Key.Username, TotalPoints };
Run Code Online (Sandbox Code Playgroud)
Asi*_*taq 15
entity.Results
.Where(m => m.Group == 0 || m.Group == 1)
.GroupBy(m => m.UserID)
.Select(m => new { User = m.Key, TotalPoints = m.Sum(v => v.Points) })
.OrderByDescending(m => m.TotalPoints);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38033 次 |
| 最近记录: |