副题目:从基础查问到服从优化,3分钟把握过期数据剖析中间SQL语句
在花费金融、信贷营业中,过期金额监控间接决定坏账率水平。传统Excel手工统计存在两大痛点:
经过SQL实现主动化统计,可将报表天生服从晋升80%。某头部花费金融公司接进SQL预警系统后,乐成拦阻M3+过期客户2300余人,增加损失超1.2亿元。
sql复制SELECT
DATE_FORMAT(order_date,'%Y-%m') AS 月份,
SUM(overdue_amount) AS 过期总额
FROM orders
WHERE order_status = '过期'
GROUP BY DATE_FORMAT(order_date,'%Y-%m')
关键点说明:
DATE_FORMAT
将日期转为年月格局sql复制WITH monthly_data AS (
SELECT
DATE_FORMAT(order_date,'%Y-%m') AS month,
SUM(overdue_amount) AS total
FROM orders
WHERE order_status = '过期'
GROUP BY month
)
SELECT
curr.month,
curr.total AS 本月金额,
prev.total AS 上月金额,
ROUND((curr.total - prev.total)/prev.total*100,2) AS 环比增幅
FROM monthly_data curr
LEFT JOIN monthly_data prev
ON curr.month = DATE_ADD(prev.month, INTERVAL 1 MONTH)
实现后果:主动输进每一个月过期金额及比拟上月的增加百分比,精准定位非常月份
sql复制SELECT
o1.order_date AS 日期,
o1.overdue_amount AS 当日过期,
o2.overdue_amount AS 前日过期,
o1.overdue_amount - o2.overdue_amount AS 增加差额
FROM orders o1
INNER JOIN orders o2
ON o1.order_date = DATE_ADD(o2.order_date, INTERVAL 1 DAY)
WHERE (o1.overdue_amount - o2.overdue_amount) > 1000000
技能走光:
在order_date、order_status字段创立分离索引:
sql复制CREATE INDEX idx_order_status_date ON orders(order_status,order_date);
道理:经过索引下推快速定位过期定单,增加90%的全表扫描
将多表JOIN改写为分段查问:
sql复制SELECT month, SUM(amt) FROM (
SELECT order_date,overdue_amount AS amt FROM orders WHERE...
UNION ALL
SELECT repay_date,-payment_amount FROM repayments WHERE...
) tmp GROUP BY month
上风:防止大表JOIN导致的临时表收缩
创立过期金额快照表:
sql复制CREATE TABLE overdue_snapshot (
month VARCHAR(7) PRIMARY KEY,
total DECIMAL(15,2),
update_time TIMESTAMP
);
逐日黄昏定时任务更新(使用存储过程或工作调剂),查问服从晋升20倍
sql复制SELECT
CASE
WHEN overdue_total > 1000000 THEN '高危'
WHEN overdue_total > 500000 THEN '中危'
ELSE '低危'
END AS 危害品级,
COUNT(*) AS 客户数
FROM customer_overdue
GROUP BY 危害品级
输进结果:间接驱动催收计谋调剂
sql复制SELECT
province,
SUM(overdue_amount) AS total,
RANK() OVER(ORDER BY SUM(overdue_amount) DESC) AS 排名
FROM orders JOIN customers USING(customer_id)
GROUP BY province
数据使用:精准分派地区催收资本
CONVERT_TZ()
函数统一为北京时间
sql复制SELECT CONVERT_TZ(order_date,'+00:00','+08:00')
``` ```
sql复制LAST_DAY(CURDATE()) -- 获得当月最后一天[14]()
``` ```
立刻行为:在测试情况履行上述SQL代码(需交换实在表名和字段),15分钟即可实现首份过期监控报表。关注咱们获得《金融风控SQL模板库》,包含38个即查即用剧本。
下一篇:返回列表