Tsql 加权平均场

Tsql 加权平均场,tsql,weighted-average,Tsql,Weighted Average,我对用T-SQL做计算是完全陌生的。我想我想知道什么是加权平均数,以及如何在T-SQL中对字段进行加权平均 首先,据我所知,加权平均只是将2列相乘,然后除以某个值求平均值 下面是我在调用一个UDF后看到的一个计算字段的示例。在我看来,这个领域也应该是一个加权平均值……不知道从哪里开始把它变成加权平均值 所以这个UDF最终会返回平均成本G。我从自己的角度称之为UDF,以下是UDF的精髓: Set @AverageCostG = ((@AvgFullYear_Rent * @Months) +

我对用T-SQL做计算是完全陌生的。我想我想知道什么是加权平均数,以及如何在T-SQL中对字段进行加权平均

首先,据我所知,加权平均只是将2列相乘,然后除以某个值求平均值

下面是我在调用一个UDF后看到的一个计算字段的示例。在我看来,这个领域也应该是一个加权平均值……不知道从哪里开始把它变成加权平均值

所以这个UDF最终会返回平均成本G。我从自己的角度称之为UDF,以下是UDF的精髓:

Set @AverageCostG = ((@AvgFullYear_Rent * @Months) +
                            (@PrevYearRent * @PrevYearMonths))
                            / @Term
所以在我看来,我打电话给上面的UDF是为了得到@AverageCostG

CREATE View MyTestView 
AS   
select v.*, --TODO: get rid of *, that's just for testing, select actual field names
        CalculateAvgRentG(d.GrossNet, d.BaseMonthlyRent, d.ILI, d.Increase, d.Term) as AverageRent_G,
....

from SomeOtherView v
现在我需要在我看来,使这个平均值计算域也是一个加权平均值

我是否需要知道他们想要什么,还是假设嘿,这很明显。。我不知道我需要知道什么来为这些家伙做加权平均…比如除了我根据UDF调用创建的计算之外,我需要从他们那里得到什么规格(如果有的话)。我的意思是,除了乘以2个字段并除以某个值来求平均值之外,我还需要做一些疯狂的选择联接或其他事情吗?我如何知道在加权平均中使用哪些字段以及从何处使用这些字段?我会公开承认我是BIT-SQL开发的新手,因为我是一名ASP.NETMVC/Architect开发人员,在T-SQL中迷失了计算的方向


我已经尝试过研究这个问题,但是第一次只需要一些基本的手,我的头现在很痛,因为我不知道我需要从他们那里获得什么信息,然后如何准确地使计算字段加权。

他们必须告诉你加权因子是什么。这是我的猜测

SUM([weight] * CalculateAvgRentG(...)) / SUM([weight])

他们必须告诉你权重系数是多少。这是我的猜测

SUM([weight] * CalculateAvgRentG(...)) / SUM([weight])

我可能提出的问题比应该的要长,可能重复了几次同样的废话,但我的脑袋在转,所以请原谅我…你的客户应该能够告诉你他们希望数据如何加权,因为你可以用几乎无限的方式加权任何给定的数据。这方面的一个例子可能是,他们希望通过通胀因素来加权,以获得今年和上一年的“实际”收入,但如果没有具体要求,你就无法开始有意义地加权!我可能提出的问题比应该的要长,可能重复了几次同样的废话,但我的脑袋在转,所以请原谅我…你的客户应该能够告诉你他们希望数据如何加权,因为你可以用几乎无限的方式加权任何给定的数据。这方面的一个例子可能是,他们希望通过通胀因素来加权,以获得今年和上一年的“实际”收入,但如果没有具体要求,你就无法开始有意义地加权!