SQL Server 2012:加权平均计算
问题描述:
我试图计算表中某些数据的加权平均成熟度。SQL Server 2012:加权平均计算
SaleEventID LID(PK) CurrentUPB Interest Rate RemainingMonths
1 1 $100,000.00 6.100% 11.00
1 2 $67,000.00 6.200% 360.00
1 3 $1,400,000.00 6.300% 240.00
1 4 $500,000.00 7.000% 100.00
2 5 $1,400,000.00 7.100% 240.00
2 6 $500,000.00 7.000% 100.00
所以我试图完成的公式是(WAM):
1)乘CurrentUPB *为LID RemainingMonths = 1
2)做到这一点对每个匹配行WHERE SaleEventID = 1
3)SUM上述计算= $411,220,000.00
= A
4)SUM所有CurrentUPB WHERE SaleEventID = 1,这等于$2,067,000.00
= B
5)然后除以A/B = $198.95
这是我的WAM
我需要考虑的是,在我的表,我将有很多贷款和每个不会被归于同一个SaleEventID
值(是不是主键)
我的查询到目前为止:
SELECT l.*, A/B FROM AS WAM
FROM (SELECT LSX_DC_Loans l
(SELECT CurrentUPB * RemainingMonths FROM l WHERE LID = 1
) AS A
(SELECT SUM (CurrentUPB) CurrentUPB FROM LSX_DC_Loans
WHERE SaleEventID = 1
) AS B
FROM l
) l
我很难找出如何做步骤2 & 4.任何帮助,例子高度赞赏。
答
要计算WAM和WAIR是非常简单的。想想SUMPRODUCT()在Excel
Declare @YourTable table (SaleEventID int,LID int,CurrentUPB money,[Interest Rate] money,RemainingMonths money)
Insert Into @YourTable values
(1,1,100000.00,6.100, 11.00),
(1,2,67000.00,6.200, 360.00),
(1,3,1400000.00,6.300, 240.00),
(1,4,500000.00,7.000, 100.00),
(2,5,1400000.00,7.100, 240.00),
(2,6,500000.00,7.000,100.00)
Select SaleEventID
,UPB = sum(CurrentUPB)
,WAM = sum(CurrentUPB*RemainingMonths)/sum(CurrentUPB)
,WAIR = sum(CurrentUPB*[Interest Rate])/sum(CurrentUPB)
From @YourTable
Where SaleEventID = @Event
Group By SaleEventID
返回
SaleEventID UPB WAM WAIR
1 2067000.00 198.9453 6.4564
2 1900000.00 203.1578 7.0736
答
如果我正确理解你的问题,这里就是答案
SELECT
l.*
, l1.A/l2.B AS WAM
FROM
LXC_DC_Loans l
CROSS APPLY (SELECT SUM(CurrentUPB * RemainingMonths) AS A FROM LSX_DC_Loans WHERE SaleEventID=l.SaleEventID) l1
CROSS APPLY (SELECT SUM(CurrentUPB) AS B A FROM LSX_DC_Loans WHERE SaleEventID=l.SaleEventID) l2
什么是洛纳? – DVT
刚刚更新了错过输入网格中的信息的问题。 – UserSN
$ 411,220,000/$ 3,967,000 = $ 103.6602健康198.95从何而来? – xQbert