我有一个看起来像这样的 SQL 表
如您所见,原始本金余额的顺序不正确。这些变量存储为 VARCHAR。我将如何正确排序和排序它们?
这是我的sql代码:
WITH Original_Principal_Bal
AS (
SELECT [New Loan Number]
,[Current Amortizing UPB]
,[Current Def UPB]
,sum([Current Amortizing UPB] + [Current Def UPB]) OVER (PARTITION BY Deal) AS [Total UPB]
,BPO
,[Current Rate]
,[Current Maturity]
,[Next Due Date]
,[First Payment Date]
,CASE
WHEN [Original Loan Amount] BETWEEN 0.01
AND 100000
THEN '$0.01 to $100,000'
WHEN [Original Loan Amount] BETWEEN 100000.01
AND 200000
THEN '$100,000.01 to $200,000'
WHEN [Original Loan Amount] BETWEEN 200000.01
AND 300000
THEN '$200,000.01 to $300,000'
WHEN [Original Loan Amount] BETWEEN 300000.01
AND 400000
THEN '$300,000.01 to $400,000'
WHEN [Original Loan Amount] BETWEEN 400000.01
AND 500000
THEN '$400,000.01 to $500,000'
WHEN [Original Loan Amount] BETWEEN 500000.01
AND 600000
THEN '$500,000.01 to $600,000'
WHEN [Original Loan Amount] BETWEEN 600000.01
AND 700000
THEN '$600,000.01 to $700,000'
WHEN [Original Loan Amount] BETWEEN 700000.01
AND 800000
THEN '$700,000.01 to $800,000'
WHEN [Original Loan Amount] BETWEEN 800000.01
AND 900000
THEN '$800,000.01 to $900,000'
WHEN [Original Loan Amount] BETWEEN 900000.01
AND 1000000
THEN '$900,000.01 to $1,000,000'
WHEN [Original Loan Amount] BETWEEN 1100000.01
AND 1200000
THEN '$1,100,000.01 to $1,200,000'
WHEN [Original Loan Amount] BETWEEN 1300000.01
AND 1400000
THEN '$1,300,000.01 to $1,400,000'
WHEN [Original Loan Amount] BETWEEN 1600000.01
AND 1700000
THEN '$1,600,000.01 to $1,700,000'
WHEN [Original Loan Amount] BETWEEN 1900000.01
AND 2000000
THEN '$1,900,000.01 to $2,000,000'
WHEN [Original Loan Amount] > 2000000.01
THEN '$2,000,000 or greater'
END AS [Original Principal Balance]
FROM Portfolio_Analytics..Securitization_Tape
)
SELECT [Original Principal Balance]
,COUNT([New Loan Number]) AS [Number of Mortgage Loans]
,ROUND(sum([Current Amortizing UPB] + [Current Def UPB]), 0) AS [Aggregate Unpaid Principal Balance as of Cut-off Date ($)]
,ROUND(avg([Current Amortizing UPB] + [Current Def UPB]), 0) AS [Average Unpaid Principal Balance ($)]
,ROUND(sum(([Current Amortizing UPB] + [Current Def UPB]) / [Total UPB]) * 100, 2) AS [Percetage of Aggregate Principal Balance as of Cut-off Date(%)]
,sum(BPO) AS [Aggregate Updated Value($)]
,ROUND(sum([Current Rate] * ([Current Amortizing UPB] + [Current Def UPB])) / sum([Current Amortizing UPB] + [Current Def UPB]), 2) AS [Weighted Average Mortgage Interest Rate(%)]
,ROUND(sum(([Current Amortizing UPB] + [Current Def UPB]) / bpo * ([Current Amortizing UPB] + [Current Def UPB])) / sum([Current Amortizing UPB] + [Current Def UPB]) * 100, 2) AS [Weighted Average Updated Loan-to-Value Ratio(%)]
,ROUND(sum((DATEDIFF(month, [Next Due Date], [Current Maturity]) + 1) * ([Current Amortizing UPB] + [Current Def UPB])) / (sum([Current Amortizing UPB] + [Current Def UPB])), 0) AS [Weighted Average Remaining Term to Maturity(Months)]
,ROUND(sum((DATEDIFF(month, [First Payment Date], [Next Due Date]) + 1) * ([Current Amortizing UPB] + [Current Def UPB])) / (sum([Current Amortizing UPB] + [Current Def UPB])), 0) AS [Weighted Average Remaining Term to Maturity(Months)]
FROM Original_Principal_Bal
GROUP BY [Original Principal Balance]
也许我在创建表格时需要以不同的方式存储数字,但我不确定如何匹配我想要的外观。
你可以做:
ORDER BY MIN([Original Loan Amount])
您还需要包含[Original Loan Amount]
在 CTE 中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句