SQL 50 › 索引 › A3 Basic Aggregate Functions 基础聚合函数
LC 1251平均售价Average Selling Price 简单
Prices 给出各产品在不同日期区间的单价,UnitsSold 记录购买日期与数量;求各产品的平均售价(无销量为 0),保留 2 位小数。
思路 按日期区间 JOIN,加权平均 SUM(价×量)/SUM(量),IFNULL 兜底。
SELECT P.product_id, ROUND(IFNULL(SUM(P.price * U.units) / SUM(U.units), 0), 2) AS average_price FROM Prices P LEFT JOIN UnitsSold U ON P.product_id = U.product_id AND U.purchase_date BETWEEN P.start_date AND P.end_date GROUP BY P.product_id;