私持っている私は、7日の期間にちょうど2倍個人が少なくとも$ 1,000トランザクションを行った回数を識別することができます次のクエリ、:は自動的に再実行している別のパラメータを持つSQLクエリを
select count(*)
from (
select id, date, visit_count, daily_total_amount,
sum(visit_count) over (partition by id order by date range between interval '6' day preceding and current row) as rolling_visit_sum
from (
select id, date, count(*) as visit_count, sum(total_amount) as daily_total_amount
from (
select id, date, time, store, sum(currency_amount) as total_amount
from table
group by id, date, time, store
having sum(currency_amount) >= 1000
)
group by id, date
order by id, date
)
group by id, date, visit_count, daily_total_amount
)
where rolling_visit_sum = 2;
クエリを再実行して、パラメータを変更したときの結果がどのように変化するかを確認します([$ 1000、$ 2000、$ 3000、$ 4000、$ 5000、$ 6000、$ 7000、$ 8000、$ 9000]を最小値としてsum currency_amount)しきい値と[1、2、3、4、5、6]が必要です。rolling_visit_sum)。私はこれが何らかのループで自動化できると思っていますが、これを初めてやり遂げたときに私は自分自身を混乱させました。
理想的には、私は出力テーブルにクエリの結果が移入X年代で(次のようなものに終わるだろう:.......
sum(currency_amount) | rolling_visit_sum | count(*)
9000 3 x
9000 4 x
9000 5 x
9000 6 x
を
sum(currency_amount) | rolling_visit_sum | count(*)
1000 1 x
1000 2 x
1000 3 x
1000 4 x
1000 5 x
1000 6 x
2000 1 x
2000 2 x
2000 3 x
2000 4 x
を
パラメータの組み合わせごとに結果を区別できるのであれば、結果の実際の形式はまったく問題ではありません。