28日ごとにスキーマ内のすべてのテーブルのレコード数を記録するテーブルがあります。レコード数の差が28日以内
:テーブルには、次のカラムがあります。私は、以下のデータを持っているログファイルをスプールアウトしたいDATE"を作成した" "TABLE_NAME" VARCHAR2(100 BYTE)、 "RECORD_COUNT" NUMBER、 テーブル名が
-
ご協力いただきありがとうございます。
28日ごとにスキーマ内のすべてのテーブルのレコード数を記録するテーブルがあります。レコード数の差が28日以内
:テーブルには、次のカラムがあります。私は、以下のデータを持っているログファイルをスプールアウトしたいDATE"を作成した" "TABLE_NAME" VARCHAR2(100 BYTE)、 "RECORD_COUNT" NUMBER、 テーブル名が
ご協力いただきありがとうございます。
をこのような何かがそれを
SELECT table_name,
record_count,
prior_record_count,
record_count - prior_record_count diff
FROM (SELECT table_name,
record_count,
lag(record_count)
over (partition by table_name
order by created) prior_record_count,
rank()
over (partition by table_name
order by created) rnk
FROM <<name of table>>)
WHERE rnk = 1
OracleのLAG関数は、必要なものを提供します。前の行のデータを返す分析関数です。以下の作業をする必要があります:
select
table_name,
record_count,
prev_record_count,
record_count - nvl(previous_record_count, 0) as difference
from (
select
table_name,
record_count,
lag(record_count) over (order by created) as prev_record_count
from
log_table
);
Danimalを行う必要があり、結果に現れてヌルのレコードもあります。私のテーブルには、Record1-Table1,580,23-JAN-12、Record2-Table1,580,20-FEB-12があります。あなたのクエリが返されます:Record1-Table1,580、(null)、(null)\t \t Record2-Table1,580,580,0 – Ram
はい、私はテーブル名でパーティションを忘れました。いい答えだ。 –
ジャスティンは私がエラーを取得:ORA-00923を: 00923. 00000を期待どこキーワードは見つかりません - *原因「キーワードから期待されるが見つかりません」: *アクション:ラインで エラー:28カラム:1 – Ram
私が作ったのいくつかのマイナーな編集とその作業SELECT TABLE_NAME、 RECORD_COUNT、 prior_record_count、 RECORD_COUNT - table_nameの順序によってprior_record_count差分 作成)prior_record_countによってTABLE_NAMEの順序によって(パーティションオーバー(SELECT TABLE_NAME、 RECORD_COUNT、 ラグ(RECORD_COUNT)FROM、 ランク()パーティション(オーバーにより、作成した)rnk FROM TABLE1) WHERE rnk = 2 – Ram