Entity Framework - 如何使用 GroupBy 获取标准偏差?

Entity Framework - How to get Standard Deviation using GroupBy?

我用的是entity framework5,代码先行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();

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

您应该可以像这样在 System.Data.Objects 中使用 EntityFunctions.StandardDeviation

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

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