求查询账户所有取款记录中最大逾期天数的SQL语句
获取取款记录的最大逾期天数并排序
假设你的表名为withdraw_records,对应的字段为:account_id(账户ID)、withdraw_date(取款日期)、amount(金额)、due_date(到期日期)、due_days_passed(逾期天数)。
1. 按逾期天数对所有记录排序
如果需要先查看所有按逾期天数从高到低排序的取款记录,执行以下SQL:
SELECT * FROM withdraw_records ORDER BY due_days_passed DESC;
2. 获取最大逾期天数
从排序后的结果中提取最大逾期天数,用LIMIT 1即可:
SELECT due_days_passed AS max_overdue_days FROM withdraw_records ORDER BY due_days_passed DESC LIMIT 1;
如果追求更高的查询效率,直接使用聚合函数MAX()是更优的选择(无需全表排序):
SELECT MAX(due_days_passed) AS max_overdue_days FROM withdraw_records;
3. 同时获取排序后的记录与最大逾期天数
如果需要在返回所有排序后记录的同时,附带显示最大逾期天数,可以借助CTE(公共表表达式)实现:
WITH sorted_withdraws AS ( SELECT * FROM withdraw_records ORDER BY due_days_passed DESC ) SELECT *, (SELECT MAX(due_days_passed) FROM sorted_withdraws) AS max_overdue_days FROM sorted_withdraws;
内容的提问来源于stack exchange,提问作者Surya Pratap
相关产品推荐
相关产品推荐

