場合によります...
少なくとも理論的には、フラッシュバック クエリを使用できる可能性があります。
Select Count(p.Group_ID)
From Player_Source as of timestamp( date '2012-09-10' ) P
Join Feature_Group_Xref as of timestamp( date '2012-09-10' ) X
On P.Group_Id=X.Group_Id
where x.feature_name ='Try this site'
ただし、これには、フラッシュバック クエリを実行するために必要な権限があり、UNDO
2 日前の午前 0 時の状態にテーブルを戻すことができるように Oracle が申請するのに十分な権限があることが必要です。通常は可能ですが、データベースがそれほど保持するように構成されている可能性は低いですUNDO
。このクエリは、たまたまOracle Total Recallを使用している場合にも機能します。
ただし、多くの場合、スキーマ定義を変更して、ある時点で照会できる履歴情報を保存する必要があります。これを実現するにはさまざまな方法があります。@ruakh が提案するように、テーブルに発効日と有効期限の列を追加することは、最も一般的なオプションの 1 つです。特定のケースに適したオプションは、保持する履歴の量、データの変更頻度など、さまざまな要因によって異なります。