如何在同一 sql 查询中计算产品在日期范围内的平均成本和最新成本

How to calculate average and latest cost of a product over date range in same sql query

我有 table 那里有产品,它的成本在一段时间内。我需要计算该期间的平均成本,平均考虑迄今为止的最新成本,我还需要获取当前成本。我怎样才能在同一个查询中实现它。

输入Table

我正在寻找像

这样的输出

产品 | average_cost | current_cost

(平均成本是(成本*该成本的天数)/今天的总天数。

您可以使用日期算法和条件聚合:

select product,
       ( sum( cost * datediff(day, beg_date, (case when end_date > getdate() then getdate() else end_date end) )) /
         sum(datediff(day, beg_date, (case when end_date > getdate() then getdate() else end_date end))
       ) as avg_price,
       max(case when end_date > getdate() then price end)
from t
group by product;