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

SQL查询计算产品订购客户占比结果全为0%问题咨询

SQL占比查询错误修复方案

原语句错误原因

  • 分子逻辑错误:使用Products.productCode(产品编码)作为统计分子,和「订购该产品的客户数」的需求完全不匹配
  • 总客户数统计错误:SUM(customerNumber)是对客户编号字段做数值求和,不是统计总客户数量,统计总客户数应该使用COUNT(*)
  • 缺少去重逻辑:没有对同一产品的重复订购客户做去重,会导致客户数统计偏高

修改后的SQL语句

SELECT 
    productName,
    CONCAT(
        ROUND(
            COUNT(DISTINCT Customers.customerNumber) / (SELECT COUNT(*) FROM Customers) * 100, 
            2
        ), 
        '%'
    ) AS CustomerPercentage 
FROM Customers
JOIN Orders ON Orders.customerNumber = Customers.customerNumber
JOIN OrderDetails ON OrderDetails.orderNumber = Orders.orderNumber
JOIN Products ON Products.productCode = OrderDetails.productCode
GROUP BY Products.productCode, productName;

调整说明

  • 用COUNT(DISTINCT Customers.customerNumber)作为分子:正确统计每个产品对应的独立订购客户数量,同一个客户多次订购同一产品仅计数一次
  • 总客户数统计替换为SELECT COUNT(*) FROM Customers:获取全量客户的总数量,作为占比计算的分母
  • GROUP BY子句补充productName:适配开启ONLY_FULL_GROUP_BY模式的SQL环境,避免分组语法报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:00:02