簡體   English   中英

與 Linq 中的 group by 不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM