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

如何在SQL中结合SUM函数与Join查询获取各客户总金额

解决SQL中JOIN结合SUM计算客户总金额的问题

正确的查询语句

SELECT customer.customer_id, customer.first_name, customer.last_name, SUM(payment.amount) AS total_amount
FROM payment
INNER JOIN customer ON customer.customer_id = payment.customer_id
GROUP BY customer.customer_id, customer.first_name, customer.last_name
ORDER BY total_amount DESC;

关键说明

  • 用SUM(payment.amount)对每个客户的所有消费金额求和,通过AS total_amount给结果列设置直观别名。
  • GROUP BY规则:SELECT子句里的非聚合列(未被SUM/COUNT等函数包裹的列)必须全部出现在GROUP BY子句中,这是SQL的标准要求,也是你之前出现语法错误的核心原因。这里按customer_id(客户唯一标识)、first_name、last_name分组,保证每个客户的基础信息和对应总金额一一匹配。
  • 你原有的INNER JOIN逻辑保留,只会返回有消费记录的客户。如果需要统计所有客户(包括无消费的),可以把INNER JOIN替换为LEFT JOIN,此时无消费客户的总金额会显示为NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:30:45