MySQL count() 查询返回行而不是总数?

标签 mysql sql

这个查询可能有什么问题:

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/

相关文章:

mysql - 如何从表限制中选择每列相同值 X 结果

mysql - 根据单元格值在Excel中插入单元格

c# - "Consider adding a reference to assembly System.Data"

php - Laravel 用户::创建缺失数据

mysql - SQL NOT IN [ids 列表](性能)

sql - 如何在 Sqlite 中使用时间序列,以及快速的时间范围查询?

mysql - 如何从每组中选择前两行

mysql检索事件之间的最大延时

SQL根据第二个表中的值列表从第一个表中选择

javascript - 以一对一的关系插入数据belongsTo Sequelize