0

グループ化後にいくつかの数値の平均を取得しようとしていますが、グループ化されません。なぜこれが私が思うべきことをしていないのですか?

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
    };
4

1 に答える 1

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
    };
于 2011-02-07T22:11:08.560 に答える