统计9月消费超100的客户数SQL查询结果错误,如何修正?
SQL查询修正:统计9月消费总额超100的客户数量
问题根因
你编写的SQL先按KLIENT字段分组,筛选出9月消费总额超过100的客户后,对每个分组单独统计去重客户数,每个符合条件的客户分组都会返回一条值为1的结果,因此2个符合条件的客户就会输出两行1,不符合预期。
正确修改方案
推荐使用子查询的方式实现,逻辑最直观:
SELECT COUNT(*) FROM ( -- 子查询先筛选出所有9月消费超100的客户 SELECT KLIENT FROM FAKTURY WHERE MONTH(DATA) = 9 GROUP BY KLIENT HAVING SUM(BRUTTO) > 100 ) AS qualified_customers
执行后会直接返回符合条件的客户总数,即你预期的数值2。
内容的提问来源于stack exchange,提问作者Normalguy
相关产品推荐
相关产品推荐

