实体框架 - 如何使用GroupBy获得标准偏差?

时间:2015-06-17 17:07:15

标签: .net entity-framework aggregation standard-deviation

我正在使用实体框架5,代码第一个流畅的API。我用GroupBy构建了一个简单的查询进行聚合:

                        var query = context.Table1
                                    .GroupBy(g => new
                                    {
                                        Prop1= g.Prop1,
                                        Prop2 = g.Prop2
                                    })
                                    .Select(s => new
                                    {
                                        Prop1= s.Key.Prop1,
                                        Prop2= s.Key.Prop2,
                                        Avg = s.Average(m => m.Minutes),
                                        Min = s.Min(m => m.Minutes),
                                        Max = s.Max(m => m.Minutes),
                                        StdDev = //How to get standard deviation of Minutes here?
                                    })
                                    .ToList();

与其他聚合(平均值,最小值,最大值)一起,如何在我的选择中获得Minutes的标准偏差?我听说StdDev有一个规范函数,但在这种情况下无法弄清楚如何应用它。任何帮助或正确方向的推动都将不胜感激!

1 个答案:

答案 0 :(得分:0)

您应该可以在System.Data.Objects中使用EntityFunctions.StandardDeviation,如下所示:

StdDev = EntityFunctions.StandardDeviation(s.Select(m => m.Minutes))

(如果您使用的是EF 6,则为System.Data.Entity.DbFunctions.StandardDeviation()