Sag*_*gar 0 c# linq sql-server linq-to-sql
ID UserName BookType bookID
1 Krish 1 1
1 Krish 1 2
1 Krish 2 1
1 Krish 2 2
2 Ram 1 1
3 Raj 1 1
3 Raj 1 2
Run Code Online (Sandbox Code Playgroud)
我有上面的表,我想获得每个用户的独特的booktype计数和bokkID计数,我能够在sqlserver中写这个,但是当我来LINQ无法编写查询时.
我需要以下输出,
ID UserName BookType bookID
1 Krish 2 2
2 Ram 1 1
3 Raj 1 2
Run Code Online (Sandbox Code Playgroud)
这应该给你正确的结果: -
var result = Userlist.GroupBy(x => new { x.ID, x.UserName })
.Select(x => new
{
ID = x.Key.ID,
UserName = x.Key.UserName,
BookType = x.Max(z => z.BookType),
BookId = x.Max(z => z.BookId)
});
Run Code Online (Sandbox Code Playgroud)
更新:
虽然您同意回答,但我错过了您的要求,上面发布的答案是错误的,因为它获取了最大的BookType和BookId.以下是获取非重复计数的查询: -
var result = Userlist.GroupBy(x => new { x.ID, x.UserName })
.Select(x => new
{
ID = x.Key.ID,
UserName = x.Key.UserName,
BookType = x.Select(z => z.BookType).Distinct().Count(),
BookId = x.Select(z => z.BookId).Distinct().Count()
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6896 次 |
| 最近记录: |