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()
)
我用的是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()
)