この質問を参考に
ソリューションはうまく機能しますが、customer_id ごとにグループ化し、各 customer_id を 4 日差分、8 日差分でグループ化する方法
この質問を参考に
ソリューションはうまく機能しますが、customer_id ごとにグループ化し、各 customer_id を 4 日差分、8 日差分でグループ化する方法
最新のものを追跡し、customer_id
それに対して「OK」ロジックを実行するだけです。
SELECT amount, customer_id, updated_at, date_diff
FROM (
SELECT *,
@b:=NOT @c<=>customer_id
OR (@b AND DATEDIFF(@t,updated_at)<=date_diff) AS okay,
@c:=customer_id,
@t:=updated_at
FROM my_table, (SELECT 4 AS date_diff) init
ORDER BY customer_id, updated_at DESC
) t
WHERE okay
ORDER BY customer_id, updated_at, id
sqlfiddleで参照してください。