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

如何通过GROUP BY按用户分组统计订单数量及总金额?SQL求助

实现按用户邮箱分组统计的SQL语句

以下是修改后的SQL语句,可直接得到你需要的按用户邮箱分组的订单数量及总金额汇总结果:

SELECT 
    c.email_address,
    COUNT(DISTINCT o.order_id) AS "Number of Orders",
    SUM((oi.item_price - oi.discount_amount) * oi.quantity) AS "Total Amount"
FROM customers c
INNER JOIN orders o ON c.customer_id = o.customer_id
INNER JOIN order_items oi ON o.order_id = oi.order_id
GROUP BY c.email_address
ORDER BY c.email_address; -- 可选:按邮箱排序让结果更规整

关键修改说明

  • 分组逻辑:通过GROUP BY c.email_address将数据按用户邮箱聚合,确保每个邮箱仅返回一行汇总记录
  • 订单数统计:使用COUNT(DISTINCT o.order_id)而非普通COUNT(o.order_id)——因为同一订单下可能包含多个商品明细,直接计数会重复统计订单,DISTINCT能保证每个订单只被计算一次
  • 总金额计算:用SUM()函数对每个商品的实际支付金额(oi.item_price - oi.discount_amount) * oi.quantity求和,得到用户的累计消费总额
  • 字段别名:保持别名与你需要的结果格式完全匹配,直接对应输出列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:15:17