【发布时间】:2020-08-24 01:43:35
【问题描述】:
我想创建一个可以创建表的函数,其中的部分列是从其他两个表中派生出来的。
输入表1: 这是每笔贷款的静态表。每笔贷款只有一行包含与该贷款相关的信息。例如原始未付余额、原始利率...
| id | loan_age | ori_upb | ori_rate | ltv |
| --- | -------- | ------- | -------- | --- |
| 1 | 360 | 1500 | 4.5 | 0.6 |
| 2 | 360 | 2000 | 3.8 | 0.5 |
输入表2: 这是每笔贷款的动态表。每笔贷款都有若干行显示每个月的贷款表现。例如,当前未付余额、当前利率、拖欠状况...
| id | month| cur_upb | cur_rate |status|
| ---| --- | ------- | -------- | --- |
| 1 | 01 | 1400 | 4.5 | 0 |
| 1 | 02 | 1300 | 4.5 | 0 |
| 1 | 03 | 1200 | 4.5 | 1 |
| 2 | 01 | 2000 | 3.8 | 0 |
| 2 | 02 | 1900 | 3.8 | 0 |
| 2 | 03 | 1900 | 3.8 | 1 |
| 2 | 04 | 1900 | 3.8 | 2 |
输出表: 输出表包含来自 table1 和 table2 的信息。 payoffupb 是表 2 中 cur_upb 的最后一条记录。此表是为模型开发而构建的。
| id | loan_age | ori_upb | ori_rate | ltv | payoffmonth| payoffupb | payoffrate |lastStatus | modification |
| ---| -------- | ------- | -------- | --- | ---------- | --------- | ---------- |---------- | ------------ |
| 1 | 360 | 1500 | 4.5 | 0.6 | 03 | 1200 | 4.5 | 1 | null |
| 2 | 360 | 2000 | 3.8 | 0.5 | 04 | 1900 | 3.8 | 2 | null |
输出表中的大部分列可以直接从两个输入表中的列获取或转移,但有些列无法获取则留空。
我的主要问题是如何编写一个函数以将两个表作为输入并输出另一个表? 我已经在 2018 年为数据文件编写了特征转换部分,但我需要在其他年份再次为数据文件做同样的事情。这就是为什么我想创建一个函数来让事情变得更简单。
【问题讨论】:
-
请解释
payoffmonth、payoffupb、payoffrate和laststatus列是如何计算的?为什么 01 和 02 月份没有出现在输出中?选择第 03 个月的一行而不是另一行的规则是什么?如果第 4 个月还有 3 行呢? -
嗨,很抱歉造成混乱。我用更多解释更新了我的问题。但我的问题主要是关于如何编写一个两表输入和一表输出的函数。我已经做了特征转换部分,这里只是一个简单的演示,但我想对其他类似的表格文件应用相同的东西。
标签: postgresql function