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

如何统计数据库中用户购买的去重唯一产品数量

用户购买去重商品数统计实现方案

商店数据库ER关系图

核心实现逻辑

统计时以用户为聚合维度,对用户关联到的商品唯一标识做去重计数,同一款商品无论在多少笔订单中出现、被购买多少次,仅计数1次。
常规该类商店数据库的表关联链路如下:

  • 用户表(users)存储用户基础信息,通过user_id字段关联订单表
  • 订单表(orders)存储订单主信息,通过order_id字段关联订单明细表
  • 订单明细表(order_items)存储每笔订单包含的具体商品记录,通过product_id字段关联商品表
  • 商品表(products)存储商品基础信息

参考SQL实现

SELECT
  u.user_id,
  u.user_name, -- 替换为你实际表中的用户名称字段
  COUNT(DISTINCT oi.product_id) AS unique_purchased_product_cnt
FROM users u
-- 使用LEFT JOIN可保留无任何购买记录的用户,这类用户的统计结果会显示为0;如果仅需统计有购买行为的用户,可替换为INNER JOIN
LEFT JOIN orders o
  ON u.user_id = o.user_id
  -- 可选业务过滤规则:仅统计有效已完成订单,可根据你表中实际的订单状态字段、枚举值自行调整
  -- AND o.order_status = 'paid'
LEFT JOIN order_items oi
  ON o.order_id = oi.order_id
GROUP BY u.user_id, u.user_name;

注意事项

如果你的业务判定「同一款商品」的维度不是商品ID(product_id),比如是通用SPU编码,将COUNT(DISTINCT)中的字段替换为对应业务判定字段即可。
不建议直接关联商品表后计数商品表主键,避免因为商品属性变更、多规格映射导致计数偏差,直接取订单明细中关联的商品唯一标识去重计数准确性最高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:30:47