无需指定每个id即可统计id重复出现次数的实现方法
实现方法
1. SQL 实现(最适合结构化表数据处理)
处理逻辑分两步:
- 先按id分组统计每个客户的到店总次数
- 再以上述结果为基础,按到店次数分组,统计对应次数的客户数量
示例代码如下(假设源表名为store_visits):
SELECT CONCAT(visit_times, IF(visit_times = 1, ' time', ' times')) AS `Times that customers come`, COUNT(*) AS customer_num FROM ( -- 子查询统计每个id的到店次数 SELECT id, COUNT(*) AS visit_times FROM store_visits -- 如需按月份统计,可在这里加时间过滤条件,例如 WHERE visit_month = '2024-06' GROUP BY id ) AS customer_visit_stat GROUP BY visit_times ORDER BY visit_times;
如果单独需要统计每月到店3次及以上的客户总数,使用以下语句:
SELECT COUNT(*) AS over_3_times_customer_num FROM ( SELECT id, COUNT(*) AS visit_times FROM store_visits -- 替换为实际的时间过滤条件 WHERE visit_month = '2024-06' GROUP BY id HAVING visit_times >= 3 ) AS t;
2. Excel 实现
如果数据存储在Excel中,按以下步骤操作:
- 新增一列统计每个id的到访次数:假设id数据在B列,C2单元格输入公式
=COUNTIF(B:B,B2),下拉填充所有行,得到每行对应id的总到访次数 - 把C列的次数值复制到新列后去重,对每个去重后的次数值,用
COUNTIF(C:C, 次数值)统计对应次数的客户数量,即可得到要求的结果格式
内容的提问来源于stack exchange,提问作者Cattivellio
相关产品推荐
相关产品推荐

