Расчет средневзвешенного с LINQ
Моя цель - получить средневзвешенное значение из одной таблицы на основе первичного ключа других таблиц.
Пример данных:
Таблица 1
Key WEIGHTED_AVERAGE
0200 0
Таблица 2
ForeignKey Length Value
0200 105 52
0200 105 60
0200 105 54
0200 105 -1
0200 47 55
Мне нужно получить средневзвешенное значение на основе длины сегмента, и мне нужно игнорировать значения -1. Я знаю, как сделать это в SQL, но моя цель - сделать это в LINQ. В SQL это выглядит примерно так:
SELECT Sum(t2.Value*t2.Length)/Sum(t2.Length) AS WEIGHTED_AVERAGE
FROM Table1 t1, Table2 t2
WHERE t2.Value <> -1
AND t2.ForeignKey = t1.Key;
Я все еще довольно новичок в LINQ, и мне трудно понять, как я могу это перевести. Средневзвешенное значение результата должно составить примерно 55,3. Спасибо.