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

如何以sum()计算的客户总账户余额为条件更新customer_type字段

SQL实现方案

核心逻辑是先关联存款人表和账户表,按客户唯一ID分组计算总资产,过滤出总资产超过10000的客户ID,再对客户表执行更新操作,过滤聚合结果需要使用HAVING子句,分组键必须使用唯一的customer_id而非客户姓名,避免重名导致的更新错误。

通用兼容写法(支持所有主流关系型数据库)

UPDATE customer
SET customer_type = 'VIP'
WHERE customer_id IN (
    SELECT d.customer_id
    FROM depositor d
    INNER JOIN account a ON d.account_number = a.account_number
    GROUP BY d.customer_id
    HAVING SUM(a.balance) > 10000
);

MySQL 多表更新写法

如果使用MySQL数据库,也可以用关联更新的写法,执行效率更高:

UPDATE customer c
INNER JOIN (
    SELECT d.customer_id
    FROM depositor d
    INNER JOIN account a ON d.account_number = a.account_number
    GROUP BY d.customer_id
    HAVING SUM(a.balance) > 10000
) qualified_customer ON c.customer_id = qualified_customer.customer_id
SET c.customer_type = 'VIP';

执行完成后,客户ID为ghi和stu的两条记录customer_type会被更新为VIP,其余客户不满足条件保持原值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:54:08