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

技术请求:统计同一行双值出现次数及客户门店到访次数

解决客户门店访问次数统计的SQL问题

Hey there! Let's work through this SQL counting challenge you're dealing with. You need to tally up how many times each customer visited every individual store, right? Let's break this down step by step.

先明确你的数据与需求

你的Sales表原始数据是这样的:

CustNo | StoreNo
2      | 10
2      | 10
3      | 5
3      | 10
2      | 20

你想要的结果是按「客户+门店」的组合分组,统计每组的出现次数,也就是每个客户对应各门店的访问次数。

核心SQL解决方案

这是典型的分组聚合场景,用GROUP BY搭配COUNT()就能轻松实现。直接用下面的查询语句:

SELECT
    CustNo,
    StoreNo,
    COUNT(*) AS Count
FROM Sales
GROUP BY CustNo, StoreNo
ORDER BY CustNo, StoreNo;

语句逻辑解释

  • GROUP BY CustNo, StoreNo:把表中所有记录按照「客户编号+门店编号」的唯一组合进行分组,相同组合的记录会被归为一组。
  • COUNT(*):统计每个分组内的记录总数,也就是该客户访问对应门店的次数。我们给这个统计结果起别名Count,和你期望的结果字段名一致。
  • ORDER BY CustNo, StoreNo:这一步是为了让结果顺序和你给出的期望输出匹配,让数据更易读,属于可选优化步骤,但推荐加上。

执行这个查询后,就能得到你想要的结果:

CustNo | StoreNo | Count
2      | 10      | 2
2      | 20      | 1
3      | 5       | 1
3      | 10      | 1

补充小提示

如果你的表中存在CustNo或StoreNo为NULL的记录,COUNT(*)依然会统计这些行;如果只想统计非NULL的有效组合,可以用COUNT(CustNo)或者COUNT(StoreNo),在你的场景下效果完全一致,因为你的数据里这两个字段都是非空的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:00:23