1

この質問を参考に

日付の差分が下から 4 になるまですべての行を選択します

ソリューションはうまく機能しますが、customer_id ごとにグループ化し、各 customer_id を 4 日差分、8 日差分でグループ化する方法

http://sqlfiddle.com/#!2/93d75/3

4

1 に答える 1

1

最新のものを追跡し、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で参照してください。

于 2012-08-29T06:25:44.997 に答える