【发布时间】:2013-05-22 09:38:22
【问题描述】:
我有一个类似的小型统计表:
+----+----------+-------+------------+-------------+
| 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 天前的数据,如果没有找到,你可以找到旧的"
谢谢!
【问题讨论】: