postgres avg query
Не могу понять даже как составить, есть 3 таблицы
Templates /
id name
Products /
id template_id delivery_cost
Modifications /
id product_id price
У меня есть tempalte_id и зная его нужно узнать все products и среднее значение modifications + shipping_cost товара
У меня вышло вот что:
SELECT *, (
(SELECT avg(dp.price)
FROM (
SELECT ppm.price as price
FROM producer_products
LEFT JOIN modifications ppm
on producer_products.id = ppm.product_id
WHERE products.template_id = 385
GROUP BY ppm.product_id, ppm.price
) as dp
) + (
SELECT avg(products.shipping_cost) as scost
FROM products
WHERE products.template_id = 385
)
) as price
FROM products
WHERE products.template_id = 385
Что дает совсем не то среднее значение, оно высчитывает среднее включая модификации не одного конкретного товара, а сразу всех. Подскажите как решить это