ローリングウィークこんにちは、みんな、
2019 年初めから 2023 年 4 月までのデータを含むデータベースがあります。
再度実行すると、2023 年の新しいデータが毎週追加されるスクリプトを作成しました。
このファイルが重くなりすぎないように、週の初めにスクリプトを再起動したときに、ローリング週を削除できるようにしたいと考えています。
たとえば、今日は 2023 年の第 21 週 (W21) に入ります。 今日スクリプトを実行すると、2019 年の S1 を削除して、2023 年の S21 を追加できます。
来週は 2023 年の S22 になります。スクリプトはこの新しい週を追加しますが、同時に 2019 年の S2 を削除できるようにしたいと考えています...
ただし、同じ週にスクリプトを複数回実行した場合、連続した数週間が削除されることはありません。
例: S21 2023 でスクリプトを 3 回実行すると、S1 2019 が削除されるだけで、S1/S2/S3 2019 は削除されません (スクリプトを 3 回実行したため)
データベースには、スクリプトの開発に役立つ「開始日」列があります。 以下にコラムの概要を示します。

ご協力いただきありがとうございます
データアクセスデータのブレンディングとクリーンアップRe: セマイン・グリッサンテ更新されたデータ テーブルの目的がわからないため、この提案は役に立たない可能性があります。 行を削除する代わりに、数式列またはスクリプトを使用して、除外された行のローリング行状態を計算できます。 データテーブルが重くなりすぎることを避けたいとのことでしたので、このアプローチは目的に合わない可能性があります。
Re: ローリングウィークデータ テーブルの負担を避けるために、私の目標は、新しいデータを追加する一方で、「古い」データを削除することです。 これにより、データ テーブルのファイル サイズとのバランスをとることができます。
最初の投稿で述べたことを実行するスクリプトを書きたいと思います。
Re: セマイン・グリッサンテデータベースから JMPM データ テーブルにデータを抽出していますか? その場合は、WHERE 句を使用して期間を指定できます。
Re: セマイン・グリッサンテDate Increment 関数の使用を検討してください。 この例では、Date Increment は過去 230 週間をカウントし、その週の最初の日 (日曜日) の日付を返します。 次に、その日付より前の開始日を持つすべての行を選択し、削除します。 スクリプトを実行する 1 週間以内では、Date Increment によって返される日付は同じになるため、不要なデータ削除を引き起こすことなく、週に複数回データ テーブルを更新できます。
Names Default to Here( 1 );
deleteDate = Date Increment( Today(), "Week", -230, "start" );
Data Table( "Rolling Week.jmp" ) << Select Where( :Start Date < deleteDate );
Data Table( "Rolling Week.jmp" ) << Delete Rows;