这个查询可能有什么问题:
select count(customer_email) as num_prev
from _pj_cust_email_by_date
where order_date < '2011-02'
and customer_email is not null
group by customer_email having count(order_date) > 0;
返回行结果,例如:
1
2
3
2
1
5
4
当我试图获取在指定日期范围内购买的客户总数的完整计数时?
_pj_cust_email_by_date
是一种仅以 YYYY-MM-DD 格式返回电子邮件地址和订单日期的 View 。除了这个 View ,我无权使用任何东西。
最佳答案
GROUP BY
导致了这种情况。
它导致每组返回一个结果行,在此针对 customer_email
的每个不同值。
如果您想要不同电子邮件地址的总数,则需要删除 GROUP BY
子句并将 COUNT
更改为 COUNT(DISTINCT customer_email)
。
关于MySQL count() 查询返回行而不是总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5085418/