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

如何在同一sql查询中计算产品在日期范围内的平均和最新成本,sql,sql-server,group-by,average,nested-queries,Sql,Sql Server,Group By,Average,Nested Queries,我有一张桌子,上面有产品,它的成本在一个时间范围内。我需要计算该期间的平均成本,将截止日期的最新成本视为平均成本,我还需要获取当前成本。如何在相同的查询中实现它 输入表 我正在寻找像这样的输出 产品|平均成本|当前成本 (平均成本是(成本*该成本的天数)/总天数dill今天的日期。您可以使用日期算术和条件聚合: select product, ( sum( cost * datediff(day, beg_date, (case when end_date > getdat

我有一张桌子,上面有产品,它的成本在一个时间范围内。我需要计算该期间的平均成本,将截止日期的最新成本视为平均成本,我还需要获取当前成本。如何在相同的查询中实现它

输入表

我正在寻找像这样的输出

产品|平均成本|当前成本


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

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

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;