如何在同一 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;
我有 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;