我有以下查询:
SELECT ROUND(AVG( p.price ),2) as Avg_value
FROM quotes
inner join `system_users`
ON quotes.created_by = system_users.id
inner join quote_items s
ON s.quote_id = quotes.id
inner join new_products p
ON p.id = new_product_id
如何根据以下情况确定平均值: 系统用户可以有很多引号 报价可以有很多报价项目 每个报价项目都有一个产品。
我希望平均值基于报价数量。 如何根据quote_items的数量
更改查询由于
答案 0 :(得分:1)
如果我理解你的问题(我可能不是),你正在寻找每个报价的平均价格。假设报价是该报价的所有产品价格的总和,则以下查询应该有效。它首先获得每个报价的总价格(在子查询中),然后对其进行平均。
SELECT ROUND(AVG(x.quote_price),2) as Avg_value
FROM
(
SELECT quotes.id, SUM(p.price) quote_price
FROM quotes
inner join `system_users`
ON quotes.created_by = system_users.id
inner join quote_items s
ON s.quote_id = quotes.id
inner join new_products p
ON p.id = new_product_id
GROUP BY quotes.id
) x;