如何按城市分组统计各城市对应的唯一门店总数
按城市统计唯一门店数实现方案
核心逻辑为按城市维度分组后,对组内门店编号做去重计数,以下是不同场景下的可落地实现:
SQL 实现(全关系型数据库/大数据SQL引擎通用)
假设原始存储门店数据的表名为city_store,直接执行以下SQL语句即可输出预期结果:
SELECT city, COUNT(DISTINCT store_number) AS unique_store FROM city_store GROUP BY city;
- 执行逻辑:首先按照
city字段将全表数据划分为不同城市的分组,之后对每个分组内的store_number去重后统计数量,最终输出的字段、数值完全匹配要求的结果。 - 兼容说明:该语法兼容MySQL、PostgreSQL、Hive、Spark SQL等绝大多数支持SQL的数据引擎,无需额外适配。
Python Pandas 实现(离线数据处理场景)
如果是通过Python做本地/离线数据处理,使用Pandas库的实现代码如下:
import pandas as pd # 此处df为加载完成的原始门店数据DataFrame result = df.groupby("city", as_index=False)["store_number"].nunique() result.columns = ["city", "unique_store"]
- 执行逻辑:
groupby方法按城市字段拆分数据分组,nunique()方法直接统计每个分组内门店编号的唯一值个数,最后重命名列名即可得到符合格式要求的结果。
内容的提问来源于stack exchange,提问作者StackerOverflowing
相关产品推荐
相关产品推荐

