请求生成两类SQL查询:按客户统计账户数、总余额及大龄客户平均余额
没问题!这就给你写出需要的两个SQL查询,还附带逻辑说明,方便你理解和适配你的实际表结构~
1. 统计每位客户的账户数量及账户余额总计
这条查询会按客户编号分组,统计每个客户名下的账户总数,以及所有账户的余额总和:
SELECT Client_number, COUNT(Account_number) AS account_count, SUM(Account_balance_statement) AS total_balance FROM your_table_name -- 记得替换成你的实际数据库表名 GROUP BY Client_number;
逻辑说明:
GROUP BY Client_number:按客户编号分组,确保同一个客户的所有账户记录被聚合在一起COUNT(Account_number):统计每个客户的账户数量(如果Account_number是不会为空的主键,用COUNT(*)也能得到相同结果)SUM(Account_balance_statement):累加该客户所有账户的余额,得到余额总计值
2. 统计年龄≥22岁客户的平均账户余额
这里分两种常见的统计场景,你可以根据实际业务需求选择:
场景一:所有符合条件的账户的平均余额
统计年龄≥22岁的客户名下所有账户的余额平均值(单账户维度):
SELECT AVG(Account_balance_statement) AS average_account_balance FROM your_table_name -- 替换为实际表名 WHERE Age >= 22;
场景二:每位符合条件的客户的平均余额(客户维度)
先计算每个年龄≥22岁客户的总余额,再求这些客户总余额的平均值:
SELECT AVG(total_balance) AS average_client_balance FROM ( SELECT Client_number, SUM(Account_balance_statement) AS total_balance FROM your_table_name WHERE Age >= 22 GROUP BY Client_number ) AS client_balances;
逻辑说明:
- 场景一直接通过
WHERE筛选年龄条件后,用AVG()计算所有符合条件账户的余额平均值,适合查看单个账户的平均资产水平 - 场景二先通过子查询得到每个符合条件客户的总余额,再对这些总余额求平均,适合从客户维度统计平均资产情况
内容的提问来源于stack exchange,提问作者Jim Kingston Keller
相关产品推荐
相关产品推荐

