以下是一个使用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 计算过去一个月的天数。请注意根据实际的数据库结构和数据来调整表名和字段名。