[英]Distinct with group by in Linq
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
我有上面的表格,我想為每個用戶獲取不同的 BookType 計數和 BookID 計數,我可以在 SQL Server 中編寫它,但是當我來到 LINQ 時,我無法編寫查詢。
我需要以下輸出
ID UserName BookType BookID
1 Krish 2 2
2 Ram 1 1
3 Raj 1 2
這應該給你正確的結果:-
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)
});
更新:
盡管您同意回答,但我不知何故錯過了您的要求,並且我上面發布的答案是錯誤的,因為它獲取了最大的 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()
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.