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

MySQL按分组统计多列去重值:统计各餐厅门店不同到访人数

MySQL按门店统计去重访客数实现方案

正确SQL写法

SELECT location, COUNT(DISTINCT visitor) AS `count`
FROM guests
GROUP BY location
ORDER BY `count` DESC;

逻辑说明

  • 首先通过GROUP BY location将所有到访记录按门店分组
  • 聚合函数COUNT(DISTINCT visitor)会自动对每个门店分组内的访客记录进行去重后计数,天然满足「同一访客到访同一家门店多次仅计数1次」的统计要求
  • 该写法无需嵌套子查询,执行效率更高,且兼容所有MySQL 5.7及以上版本
  • 针对你提供的样例数据,该语句执行后sydney门店统计结果为3,melbourne门店统计结果为4,完全匹配预期输出

原写法问题说明

你之前的SQL存在两个核心错误:

  1. 子查询中不允许连续使用多个DISTINCT关键字,该语法不合法
  2. 外层查询同时按location和visitor分组,会导致每个分组仅对应1个访客的记录,最终统计结果不符合按门店汇总的需求

内容的提问来源于stack exchange,提问作者Wonko the Sane

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:06:04