题目
Table: Prices
Table: UnitsSold
编写SQL查询以查找每种产品的平均售价。average_price
应该四舍五入到小数点后两位。
查询结果格式如下例所示:
解题思路
1.题目要求查询每种产品的平均售价。给出了两个表,我们用聚合查询来解决此问题。
2.首先我们将两个表做连接,连接条件是 p.product_id = u.product_id,然后我们在筛选出出售日期在保质期内的记录,where u.purchase_date >= p.start_date and u.purchase_date <= p.end_date ,最后我们使用sum()函数计算出平均值,再用round()函数保留两位小数即可。
代码实现
select p.product_id, round(sum(p.price * u.units) / sum(u.units), 2) average_price
from Prices p
join UnitsSold u
on p.product_id = u.product_id
where u.purchase_date >= p.start_date
and u.purchase_date <= p.end_date
group by product_id
测试结果