【问题标题】:Trying to summarize loan origination by month试图按月总结贷款来源
【发布时间】:2020-03-23 22:14:18
【问题描述】:

我正在尝试从包含可追溯到 90 年代后期的贷款水平数据的表中按月汇总每月贷款来源。每个月,最近的贷款级别数据都会添加到表中——month_key 字段用于标识最近的记录。我想按月份对贷款发起日期进行分组,并将各个月份的贷款承诺总额相加。附表描述了我想如何总结我的查询中的数据,下面的代码是我迄今为止所写的 - 它输出按月总结的数据,可以追溯到 90 年代。谢谢您的帮助。

编辑:JMB 的解决方案奏效了。一旦我重新添加了 month_key 字段,并根据记录中的最新月份进行排序,并将原始贷款余额相加,我就收到了我需要的输出。

select SUM(INDIVIDUAL_LOAN_BALANCE) AS MONTHLY_LOAN_ORIGINATIONS, ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') AS ORIG_MONTH
FROM LOAN_TABLE
WHERE MONTH_KEY = 202002
group by ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0')
HAVING ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') >= '12-2018'
ORDER BY ltrim(TO_CHAR(ORIG_OBGN_DATE,'mm-yyyy'), '0') DESC

我希望查询如何描述数据的示例:

查询当前如何输出数据

【问题讨论】:

  • 我更喜欢TRUNC(ORIG_OBGN_DATE, 'MM')

标签: sql oracle date group-by sum


【解决方案1】:

我建议利用日期数据类型来过滤、聚合和排序:这会使事情变得更容易和更安全(通常,您的where 子句比较字符串,并且不会按照您的预期进行)。您可以在select 子句中处理格式。

select 
    sum(individual_loan_balance) as monthly_loan_originations,
    ltrim(to_char(trunc(orig_obgn_date, 'mm'),'mm-yyyy'), '0') as orig_month
from loan_table
where orig_obgn_date >= date'2018-01-01'
group by trunc(orig_obgn_date, 'mm')
order by trunc(orig_obgn_date, 'mm')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多