我有一个类似于以下的小型统计表:
+----+----------+-------+------------+-------------+
| id | stat_key | value | created_at | customer_id |
+----+----------+-------+------------+-------------+
每天,一个 cron 执行一些计算并为每个客户保存统计信息。
现在我想检索 30 天前的统计信息,或者如果客户是新客户,则只要不到 30 天前就可以使用旧的统计信息。
因此,我尝试执行以下查询,但对于 30 天以上的客户,返回的始终是所有时间的旧统计信息:
SELECT *
FROM stat_table
WHERE customer_id = 1 AND stat_key = 'some_key'
HAVING (DATE(created_at) = DATE(NOW() - INTERVAL 30 DAY)
OR DATE(created_at) = DATE(MIN(created_at)));
有没有办法做到这一点?“给我 30 天前的统计数据,如果没有找到,你可以找到较旧的”
谢谢 !