Entity Framework - Как получить стандартное отклонение с помощью GroupBy?
Я использую Entity Framework 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();
Наряду с другими агрегациями (среднее, минимальное, максимальное), как я могу получить стандартное отклонение минут в моем выборе? Я слышал, что для StdDev есть каноническая функция, но не смог понять, как ее применить в этом случае. Любая помощь или толчок в правильном направлении будет принята с благодарностью!
1 ответ
Решение
Вы должны быть в состоянии использовать EntityFunctions.StandardDeviation
в System.Data.Objects
как это:
StdDev = EntityFunctions.StandardDeviation(s.Select(m => m.Minutes))
(Если бы вы использовали EF 6, это было бы System.Data.Entity.DbFunctions.StandardDeviation()
)