2011-02-07 7 views
0

그룹화 후 일부 숫자의 평균값을 얻으려고하지만 그룹화하지 않습니다. 왜 이것이 내가해야한다고 생각하는대로하지 않는거야?Linq 다중 열 그룹화 및 평균화

var eventInfo = from eventData in dt.AsEnumerable() 
    group eventData by new 
     { 
      Phase1Minutes = eventData.Field<decimal>("Phase1Minutes"), 
      Phase2Minutes = eventData.Field<decimal>("Phase2Minutes"), 
      TechnologyType = eventData.Field<string>("TechnologyType"), 
      TechnologySubType = eventData.Field<string>("TechnologySubType") 
     } into g 
    select new 
    { 
     Phase1Avg = g.Average(x => x.Field<decimal>("Phase1Minutes")), 
     Phase2Avg = g.Average(x => x.Field<decimal>("Phase2Minutes")), 
     g.Key.TechnologyType, 
     g.Key.TechnologySubType 
    }; 

답변

0

그것은 이미에 의해 그룹화하는지 평균 이상 할 말이 없습니다. 간단한 예를 들면, 연령별로 그룹화 한 다음 각 그룹 내에서 평균 연령을 찾는 것을 상상해보십시오 ... 모두 같은 연령입니다!

내 생각 엔 당신은 단지 그룹의 분 부분을 수행해야한다 :

var eventInfo = from eventData in dt.AsEnumerable() 
    group eventData by new 
     { 
      TechnologyType = eventData.Field<string>("TechnologyType"), 
      TechnologySubType = eventData.Field<string>("TechnologySubType") 
     } into g 
    select new 
    { 
     Phase1Avg = g.Average(x => x.Field<decimal>("Phase1Minutes")), 
     Phase2Avg = g.Average(x => x.Field<decimal>("Phase2Minutes")), 
     g.Key.TechnologyType, 
     g.Key.TechnologySubType 
    }; 
+0

댕 그것! 당연하지. 나는 이걸 좀 너무 오랫동안보고 있었다. 감사. – Homer