我有类似这样的数据:
Price DateChanged Product
10 2012-01-01 A
12 2012-02-01 A
30 2012-03-01 A
10 2012-09-01 A
12 2013-01-01 A
110 2012-01-01 B
112 2012-02-01 B
130 2012-03-01 B
110 2012-09-01 B
112 2013-01-01 B
我想计算平均值,但挑战是:查看第一条记录,价格 10 有效期为一个月,价格 12 有效期为一个月,价格 30 有效期为 6个月。
因此,产品 A (10+12+30+10+12)/5 的基本平均值将导致 14.8,同时考虑持续时间,则平均价格将为 ~20.1。
解决这个问题的最佳方法是什么?我知道我可以创建一个带有 row_number() 的子查询来加入以计算持续时间,但是有更好的方法吗?SQL Server 具有强大的功能,例如 STDistance,那么肯定有这个功能吗?