Tôi đang gặp khó khăn trong việc hiểu cách tôi có thể tạo một truy vấn LINQ để thực hiện như sau:C# LINQ Truy vấn - Nhóm theo
Tôi có một bảng CallLogs và tôi muốn lấy lại một kết quả đại diện cho cuộc gọi có thời lượng dài nhất.
Hàng trông như thế này:
[ID] [RemoteParty] [Thời gian]
Có thể có nhiều hàng cho RemoteParty ngang nhau, mỗi đại diện cho một cuộc gọi của một thời gian đặc biệt . Tôi muốn biết RemoteParty nào có tổng thời lượng dài nhất.
Sử dụng LINQ, tôi nhận được điều này cho đến nay:
var callStats = (from c in database.CallLogs
group c by c.RemoteParty into d
select new
{
RemoteParty = d.Key,
TotalDuration = d.Sum(x => x.Duration)
});
Vì vậy, bây giờ tôi có một kết quả nhóm với tổng thời gian cho mỗi RemoteParty nhưng tôi cần những kết quả duy nhất tối đa.
[DistinctRemoteParty1] [Thời gian]
[DistinctRemoteParty2] [Thời gian]
[DistinctRemotePartyN] [Thời gian]
Làm thế nào tôi có thể sửa đổi các truy vấn để đạt được điều này?
Điều đó sẽ chỉ trả lại TotalDuration tối đa mà không cần phần RemoteParty. – configurator