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

MySQL分组统计:如何统计对应购买次数下的用户人数

实现方案

你当前的语句已经完成了第一步统计每个用户的购买次数,只需要在此基础上套一层外层分组统计即可,完整查询语句如下:

SELECT 
  noOfSales,
  COUNT(*) AS Num
FROM (
  SELECT COUNT(ID) AS noOfSales 
  FROM Sales 
  GROUP BY `User ID`
) AS user_purchase_cnt
GROUP BY noOfSales
ORDER BY noOfSales;

逻辑说明

  • 内层子查询和你现有写法逻辑一致,按用户ID分组,统计得到每个用户的总购买次数,对应你给出的示例数据会返回 3、1、2 三条结果
  • 外层查询对内层返回的购买次数做二次分组,统计每个购买次数对应的用户数量,即可得到你需要的输出结果

性能说明

数千条记录的场景下该查询运行效率很高,无需额外优化即可秒出结果。如果后续数据量上涨,可以给Sales表的User ID字段添加普通索引,加快内层分组统计的速度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:06:07