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

按Category ID分组统计条件客户数与总购买量的SQL问题求解

问题原因
  • 两个统计客户数的子查询未关联外层的Category ID,是全表范围统计,所以所有类别的客户数结果完全一致
  • SELECT中直接使用非关联子查询不符合分组语法规则,同时GROUP BY中额外加入了Total_Customers_1、Total_Customers_10两个计算列,属于多余的错误配置,分组仅需按Category ID维度即可
  • 代码存在语法细节错误:Category_ID别名后缺少逗号、SUM计算行末尾多逗号、GROUP BY末尾多逗号
解决方法

用条件聚合替代子查询,在COUNT函数中通过CASE WHEN判断对应条件,仅统计当前分组下符合要求的客户数即可。CASE WHEN不符合条件的返回值为NULL,COUNT统计时会自动忽略NULL值,刚好匹配统计需求,也避免了分组时的子查询语法冲突。
修改后代码如下:

SELECT 
    categoryID AS Category_ID,
    COUNT(CASE WHEN `Number of Purchases` >= 1 THEN customerID END) AS Total_Customers_1,
    COUNT(CASE WHEN `Number of Purchases` >= 10 THEN customerID END) AS Total_Customers_10,
    SUM(`Number of Purchases`) AS Total_Purchases
FROM `table`
GROUP BY categoryID

如果你的表中购买次数字段实际命名为purchases,把代码中的Number of Purchases替换为purchases即可正常运行,输出结果和你给出的预期完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:57:04