Как в Mysql суммировать средние значения?

Всем привет. Столкнулся с глупой проблемой. Но уверен что есть простое решение!
Есть запрос
SELECT SUM(AVG(accessories_supplyposition.Price) * (pack_accessories.Value * pack_accessories.Value_Thing))
  FROM pack LEFT JOIN pack_accessories ON pack.Id = pack_accessories.Pack_Id
    LEFT JOIN transaction_records_accessories ON transaction_records_accessories.Pack_Accessories_Id = pack_accessories.Id
    LEFT JOIN accessories_balance ON transaction_records_accessories.Supply_Balance_Id = accessories_balance.Id
    LEFT JOIN accessories_supplyposition ON accessories_balance.Accessories_SupplyPositionId = accessories_supplyposition.Id
  WHERE pack.Id = 2000
  GROUP BY pack_accessories.Id


Задача запроса: посчитать цену изделия учитывая среднюю стоимость материалов
Но вылазит ошибка Invalid use of group function.

Я примерно понимаю с чем это связано, но не знаю как это решить! Если убрать SUM() то почти все работает!
SELECT AVG(accessories_supplyposition.Price) * (pack_accessories.Value * pack_accessories.Value_Thing)
  FROM pack LEFT JOIN pack_accessories ON pack.Id = pack_accessories.Pack_Id
    LEFT JOIN transaction_records_accessories ON transaction_records_accessories.Pack_Accessories_Id = pack_accessories.Id
    LEFT JOIN accessories_balance ON transaction_records_accessories.Supply_Balance_Id = accessories_balance.Id
    LEFT JOIN accessories_supplyposition ON accessories_balance.Accessories_SupplyPositionId = accessories_supplyposition.Id
  WHERE pack.Id = 2000
  GROUP BY pack_accessories.Id

Вывод :
  1. 36.174600000000
  2. 280.645748400000
  3. 31.320000000000

Остается только суммировать эти значения!
Подскажите!
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Просто добавьте ещё один select
select sum(amount) from (
    select avg(/**/) as amount
    /* ... */
) total
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы