SQL按客户统计消费总天数 解决sum(date)不存在报错问题
错误原因
SUM() 是数值求和函数,仅支持作用于数值类型字段,无法直接对日期类型执行计算,所以会触发sum(date)不存在的报错。同时你的需求是统计客户的消费天数,属于计数类需求,本身就不应该使用求和函数实现。
正确实现SQL
你需要先按customer_id分组拆分每个客户的数据,再用COUNT(DISTINCT)统计每个客户名下去重后的消费日期数量(同一天多次消费仅计数1次),写法如下:
SELECT customer_id, COUNT(DISTINCT order_date) AS total_consume_days FROM sales GROUP BY customer_id;
样例数据返回结果
对应你提供的测试数据,查询结果如下:
| customer_id | total_consume_days |
|---|---|
| A | 4 |
| B | 6 |
| C | 2 |
内容的提问来源于stack exchange,提问作者dddd_y
相关产品推荐
相关产品推荐

