2012-02-09 2 views
1

특정 그룹 내의 요소 수는 어떻게 계산합니까? 따라서 아래 쿼리에서 각 계정에 취소 된 활성 구독이 얼마나 많은지 알고 싶습니다. 내가 얻는 것은 최소 하나의 취소 된 또는 현재 가입이 있는지에 따라 0 또는 1입니다. 당신이 데이터 당 계정를 집계하는 것처럼각 그룹의 요소 수는 어떻게 계산합니까?

from a in Accounts 
let subs = (
     from s in Subscriptions.Where(s=>s.AccountId == a.Id) 
     group s by s.Status into bystatus 
     select bystatus 
    ) 
let csubs = subs.Count (s =>s.Key == "Cancelled") 
let asubs = subs.Count (s => s.Key == "Active") 
orderby a.Name 
select new { a.Name,a.AccountNumber, a.Status, ActiveSubscriptionCount = asubs, CancelledSubscriptionCount = csubs } 

답변

0

는 것 같습니다. 그것이 당신의 의도입니까? 모든 계정에 대한 집계 데이터를 원하는 경우에 당신은 ... 하나 나는 그것이 당 계정 집계 할

var data = Subscriptions.GroupBy(s => s.Status);
var activeSubs = data.Count(s => s.Key == "Active");
var cancelledSubs = data.Count(s => s.Key == "Cancelled");

+0

var data = // your above code
int activeSubs = data.Sum(x => x.ActiveSubscriptionCount);
int cancelledSubs = data.Sum(x => x.CancelledSubscriptionCount);

... 나 할 수 있었다. –

관련 문제