Этот вопрос распространяется на previous question. Я хочу добавить средневзвешенный итог в дополнение к некоторым отдельным средневзвешенным значениям.MySQL - две зависимые взвешенные средние значения в одном запросе
У меня есть таблица MySQL, который выглядит следующим образом:
id load_transit load_standby hours_transit hours_standby
1 40 20 8 4
2 30 15 10 10
3 50 10 3 9
мне нужно сделать следующие расчеты:
(промежуточные расчеты)
hours_transit_total = 8+10+3 = 21
hours_standby_total = 4+10+9 = 23
hours_total = 21+23 = 44
(новый дополнительный желательные)
load_transit_weighted_mean = 40*(8/21) + 30*(10/21) + 50*(3/21) = 36.667
load_standby_weighted_mean = 20*(4/23) + 15*(10/23) + 10*(9/23) = 13.913
load_total_weighted_mean = 36.667*(21/44)+13.913*(23/44) = 24.772
Возможно ли это сделать в одном запросе? Каким будет лучший дизайн?
Спасибо. Невозможно ли «кэшировать»/подзапрос результат каждого запроса SUM (hours_x * load_x), поэтому их не нужно запрашивать дважды? Мне интересно о производительности (в моей реальной таблице будет много столбцов и строк). – mtmacdonald
Я не знаю, будут ли запросы выполняться дважды - попробуйте объяснить это и посмотреть, что произойдет. –