在BigQuery中统计销售表内首次到店的唯一客户数
BigQuery统计首次到店的唯一客户数
根据需求,我们需要筛选出每个客户(或客户+门店)的首次到店记录,排除后续重复到访后统计唯一客户数,以下是两种常见场景的BigQuery查询语句:
场景1:按客户+门店统计唯一记录
如果同一客户到访不同门店时,每个门店的首次到访都需算作独立记录,使用以下查询:
WITH first_visits AS ( SELECT customer_id, store_id, MIN(visit_date) AS first_visit_date FROM `your-project.your-dataset.sales_table` -- 替换为你的实际表路径 GROUP BY customer_id, store_id ) SELECT COUNT(*) AS unique_customer_store_pairs, -- 客户-门店唯一组合数量 COUNT(DISTINCT customer_id) AS total_unique_customers -- 全局唯一客户数量 FROM first_visits;
场景2:全局唯一客户统计
如果只需统计每个客户的首次到店(无论到访哪个门店,后续所有到访都不重复统计),使用以下查询:
WITH first_overall_visits AS ( SELECT customer_id, MIN(visit_date) AS first_visit_date FROM `your-project.your-dataset.sales_table` -- 替换为你的实际表路径 GROUP BY customer_id ) SELECT COUNT(*) AS total_unique_customers FROM first_overall_visits;
说明
MIN(visit_date)用于获取每个分组下的最早到店日期,确保仅保留首次到访记录- 替换
your-project.your-dataset.sales_table为你实际的BigQuery项目ID、数据集ID和表名
内容的提问来源于stack exchange,提问作者James Bond
相关产品推荐
相关产品推荐

