一括日付クエリを増分クエリに変換する方法を作成しようとしています。たとえば、クエリに where 条件が次のように指定されている場合
WHERE date > now()::date - interval '365 days' and date < now()::date
これを今日実行すると、1 年のデータが取得されます。明日同じクエリを実行すると、365 日分のデータが再び取得されます。ただし、前回の実行からの過去 364 日間のデータが既にあります。1 日分のデータを取得し、1 日分のデータをシステムから削除して、365 日分のデータのパフォーマンスを向上させたいだけです。このデータは別の一時テーブルに保存されます。
これを実現するために、次の実行で実行されるインクリメンタル クエリを作成します。ただし、単一の日付データの削除は、その「日付」列が SELECT 句では機能せずに WHERE 条件で機能する場合、一時テーブル スキーマに「日付」列がないため、注意が必要です。
そこで、一括クエリをチャンクで実行し、そのチャンクに ID を割り当てることを考えました。このようにして、チャンクを削除してチャンクを追加しても、他のデータは影響を受けません。
postgresまたはgreenplumで同じことを達成する方法はありますか? いくつかの組み込み機能のように。ドキュメント全体を調べましたが、何も見つかりませんでした。
また、そうでない場合、この問題に対するより良い解決策はありますか。