次のような小さな統計テーブルを取得しました。
+----+----------+-------+------------+-------------+
| 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 日前の統計を教えてください。見つからない場合は、古い統計を見つけてください」
ありがとうございました !