如何在数据表中进行加权求和
本文关键字:加权 求和 数据表 | 更新日期: 2023-09-27 18:23:42
我有一个这样的数据表:
Date Qty Price
----------------------
12/07 10 2
12/09 20 3
12/05 12 2
12/05 8 6
8/9 85 56
如果我们有两行日期相同,我想计算这两列的加权价格。因此数据表变成:
Date Qty Price
----------------------------
12/07 10 2
12/09 20 3
12/05 20 (12+8) 3.6 (12*2 + 8*6)/(12+8)
8/9 85 56
SELECT Date, SUM(Qty), SUM(QtyPrice)/SUM(Qty)
FROM
(
SELECT Date, Qty, Qty * Price AS QtyPrice
FROM Table
)
GROUP BY Date
应该这样做
在C#中:
var groups = table.AsEnumerable().
GroupBy(row => row.Field<DateTime>("Date")).
Select(group => new
{
Date = group.Key,
Quantity = group.Sum(item => item.Qty),
Price = group.Sum(item => item.Qty * item.Price)
});