LC 速查

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;

数据表:Prices,UnitsSold · 关键字:求各产品的平均售价(无销量为 0),保留 2 位小数

← 上一题 有趣的电影项目员工 I 下一题 →