MySQL关联users与sales表统计各用户累计盈利的查询方法
跨表关联计算用户累计销售盈利的实现
需求核心
本质是做关联匹配+维度聚合:从用户表提取唯一标识,匹配销售表中归属对应用户的全部盈利记录,按用户维度对盈利值做求和计算。
涉及数据表结构
- users 用户表核心字段
id:用户唯一主键first_name:用户名second_name:用户姓
- sales 销售表核心字段
id:单条销售记录的唯一主键user:关联用户的外键,取值与用户表的id字段对应profit:单条销售记录对应的盈利数值
具体实现
通过主键与外键的等值关联,把用户和对应的销售记录绑定,再按用户维度分组聚合,对盈利字段求和即可得到每个用户的累计总盈利。
参考SQL实现:
SELECT u.id, CONCAT(u.first_name, ' ', u.second_name) AS full_name, SUM(COALESCE(s.profit, 0)) AS total_profit FROM users u LEFT JOIN sales s ON u.id = s.user GROUP BY u.id, u.first_name, u.second_name;
说明:如果使用左关联(
LEFT JOIN),结果会保留全量用户,哪怕用户从未产生过销售记录,这类用户的总盈利会默认计算为0;如果只需要统计有过实际销售的用户,把左关联替换为内关联(INNER JOIN)即可。
内容的提问来源于stack exchange,提问作者Mighty
相关产品推荐
相关产品推荐

