求SQL查询语句:获取指定account_id的最长逾期天数
SQL查询:获取指定账户的最长逾期天数
场景1:直接提取账户所有交易中的最长逾期天数
如果你的需求是获取指定account_id下所有交易记录里的最大逾期天数(不管单条记录的显示值,取实际存在的最大值),可以用以下语句:
SELECT account_id, MAX(due_date_passed) AS longest_overdue_days FROM transactions WHERE account_id = '你的目标账户ID' -- 替换为实际的account_id GROUP BY account_id;
场景2:修正最新提现记录的逾期天数后取最大值
如果最新提现记录的逾期天数显示为30天是计算错误,需要手动修正为120天,再提取该账户的最长逾期天数,可使用带条件判断的查询:
SELECT t.account_id, MAX( CASE -- 匹配该账户的最新提现记录,修正逾期天数为120 WHEN t.transaction_type = 'withdraw' AND t.created_at = (SELECT MAX(created_at) FROM transactions WHERE account_id = t.account_id AND transaction_type = 'withdraw') THEN 120 ELSE t.due_date_passed END ) AS longest_overdue_days FROM transactions t WHERE t.account_id = '你的目标账户ID' -- 替换为实际的account_id GROUP BY t.account_id;
说明
- 请将语句中的
transactions替换为你的实际数据表名 - 若交易类型字段不是
transaction_type、创建时间字段不是created_at,请对应调整字段名
内容的提问来源于stack exchange,提问作者Surya Pratap
相关产品推荐
相关产品推荐

