Я ищу способ получить средневзвешенное значение из двух строк данных с тем же числом столбцов, где среднее значение выглядит следующим образом (заимствуя примечание Excel):
(A1*B1)+(A2*B2)+...+(An*Bn)/SUM(A1:An)
Первая часть отражает ту же функциональность, что и функция Excel SUMPRODUCT().
Мой улов заключается в том, что мне нужно динамически указывать, какая строка усредняется с весами, и из какой строки берутся весы, и диапазон дат.
EDIT: Это проще, чем я думал, потому что Excel заставлял меня думать, что мне нужен какой-то свод. Мое решение до сих пор:
select sum(baseSeries.Actual * weightSeries.Actual) / sum(weightSeries.Actual)
from (
select RecordDate , Actual
from CalcProductionRecords
where KPI = 'Weighty'
) baseSeries inner join (
select RecordDate , Actual
from CalcProductionRecords
where KPI = 'Tons Milled'
) weightSeries on baseSeries.RecordDate = weightSeries.RecordDate