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

如何在SQL中按账户分类基于求和条件新增还款状态列?

实现还款完成状态列的SQL方案

根据你给出的需求和期望结果,我们可以通过窗口函数来实现这个需求,具体思路是按账户分组计算总已还款额,再和该账户的应还款金额(同一账户金额一致)对比,生成状态列。

完整SQL语句

假设你的表名为your_table,替换成实际表名即可:

SELECT 
    ID,
    账户,
    金额,
    已还款额,
    CASE 
        WHEN SUM(已还款额) OVER (PARTITION BY 账户) = MAX(金额) OVER (PARTITION BY 账户)
        THEN 'YES' 
        ELSE 'NO' 
    END AS 还款完成状态
FROM your_table;

代码解释

  • SUM(已还款额) OVER (PARTITION BY 账户):计算每个账户的总已还款额,窗口函数PARTITION BY 账户表示按账户分组计算。
  • MAX(金额) OVER (PARTITION BY 账户):取每个账户的金额(因同一账户金额一致,用MAX/MIN/AVG都可以)。
  • CASE表达式:判断总已还款额是否等于账户的应还款金额,相等则返回YES,否则返回NO,并将该列命名为还款完成状态。

如果你实际需求是总已还款额等于该账户所有金额的总和(与当前期望结果不符),可以将MAX(金额)替换为SUM(金额):

SELECT 
    ID,
    账户,
    金额,
    已还款额,
    CASE 
        WHEN SUM(已还款额) OVER (PARTITION BY 账户) = SUM(金额) OVER (PARTITION BY 账户)
        THEN 'YES' 
        ELSE 'NO' 
    END AS 还款完成状态
FROM your_table;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:13:23