以下是一个使用SQL查询语句来解决这个问题的示例:
SELECT customer_id
FROM orders
WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
GROUP BY customer_id
HAVING COUNT(DISTINCT DATE(order_date)) = DATEDIFF(CURDATE(), DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) + 1;
解释:
SELECT customer_id
:选择顾客ID作为结果。FROM orders
:从订单表中查询。WHERE order_date >= DATE_SUB(CURDATE(), INTERVAL 1 MONTH)
:仅选择过去一个月内的订单。GROUP BY customer_id
:按顾客ID分组。HAVING COUNT(DISTINCT DATE(order_date)) = DATEDIFF(CURDATE(), DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) + 1
:筛选出每天都有订单的顾客。COUNT(DISTINCT DATE(order_date))
统计订单日期的不同天数,DATEDIFF(CURDATE(), DATE_SUB(CURDATE(), INTERVAL 1 MONTH)) + 1
计算过去一个月的天数。请注意根据实际的数据库结构和数据来调整表名和字段名。