You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server:如何计算获批贷款申请占比并创建统计视图

搞定SQL Server贷款申请视图:平均处理时间+获批占比

嘿,作为SQL新手能搞定平均处理时间已经很棒啦!我来帮你补上获批申请占比的计算,把整个视图的写法梳理清楚~

首先先明确几个前提(如果你的表字段不一样,替换成自己的就行):
假设你的贷款申请表叫LoanApplications,包含以下关键字段:

  • SubmittedDate:申请提交时间
  • ProcessedDate:申请处理完成时间
  • ApprovalStatus:审批状态(比如'Approved'代表获批,其他值代表未获批)

1. 平均处理时间的计算(整合你已完成的部分)

用DATEDIFF函数计算提交到处理完成的时间差(这里按天算,你也可以换成hour/minute等单位),然后取平均值。建议排除还没处理完的申请(ProcessedDate IS NOT NULL),不然会拉低平均时间的准确性。

2. 获批申请占比的计算

核心逻辑是获批申请数 ÷ 总申请数,用CASE语句配合聚合函数就能轻松实现:

  • 用SUM(CASE WHEN ApprovalStatus = 'Approved' THEN 1 ELSE 0 END)统计获批的申请数量
  • 用COUNT(*)统计总申请数(如果要只统计已处理的,就换成COUNT(ProcessedDate))
  • 用NULLIF(COUNT(*), 0)避免总申请数为0时出现除以0的错误(此时结果会显示NULL而非报错)
  • 乘以100.0转成百分比格式,再用ROUND保留2位小数更美观

完整的视图创建代码

CREATE VIEW vw_LoanApplicationMetrics
AS
SELECT
    -- 平均处理时间(单位:天,可按需换成hour/minute)
    AVG(DATEDIFF(day, SubmittedDate, ProcessedDate)) AS AvgProcessingTime,
    -- 获批申请占比(百分比格式,保留2位小数)
    ROUND(
        (SUM(CASE WHEN ApprovalStatus = 'Approved' THEN 1 ELSE 0 END) * 100.0) 
        / NULLIF(COUNT(*), 0),
        2
    ) AS ApprovedPercentage
FROM
    LoanApplications
-- 可选:排除未处理完成的申请,根据业务需求决定是否保留
WHERE
    ProcessedDate IS NOT NULL;

代码小提示

如果你的审批状态不是用'Approved'标记(比如用1代表获批),把ApprovalStatus = 'Approved'改成对应的条件就行,比如ApprovalStatus = 1。

内容的提问来源于stack exchange,提问作者John Ohara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:29:38