-2
重複レコードを持つテーブルABCがあります。私はBteqを使用して、同じスキーマ内の別のテーブルABC_DUPEに重複レコードのみを挿入したい。 提案がありますか?重複レコードを一時テーブルに挿入する
おかげで、 ムケシュ
重複レコードを持つテーブルABCがあります。私はBteqを使用して、同じスキーマ内の別のテーブルABC_DUPEに重複レコードのみを挿入したい。 提案がありますか?重複レコードを一時テーブルに挿入する
おかげで、 ムケシュ
あなたは重複を識別して出力するQUALIFY
ステートメントを使用することができます:あなたがあなたのテーブルを共有していなかったので、次のABC
表を考えてみその後...
:
+----+----+----+
| f1 | f2 | f3 |
+----+----+----+
| 1 | a | x |
| 1 | b | y |
| 2 | a | z |
| 2 | b | w |
| 2 | a | n |
+----+----+----+
フィールドf1
とf2
を使用して一意のレコードを決定します。この例では、f1=2 and f2='a'
がf3
値z
とn
で重複しているレコードです。我々はqualify
を使用し、出力するには、これら:
SELECT *
FROM ABC
QUALIFY COUNT(*) OVER (PARTITION BY f1, f2) > 1;
QUALIFY
出力されたレコードセットに含めるレコードを決定するためにウィンドウ関数を使用しています。ここでは、ユニークな複合キーf1, f2
でウィンドウ関数COUNT(*)
の分割を使用します。そのパーティション上のCount(*)
が1
より大きいレコードのみを保持します。
この意志出力:
CREATE TABLE ABC_DUPE AS
(
SELECT *
FROM ABC
QUALIFY COUNT(*) OVER (PARTITION BY f1, f2) > 1
) PRIMARY INDEX (f1, f2);
:
+----+----+----+
| f1 | f2 | f3 |
+----+----+----+
| 2 | a | z |
| 2 | a | n |
+----+----+----+
はあなたが好きなCREATE TABLE
文でこれを使用することができます