2017-06-02 15 views

答えて

0

あなたは重複を識別して出力するQUALIFYステートメントを使用することができます:あなたがあなたのテーブルを共有していなかったので、次のABC表を考えてみその後...

+----+----+----+ 
| f1 | f2 | f3 | 
+----+----+----+ 
| 1 | a | x | 
| 1 | b | y | 
| 2 | a | z | 
| 2 | b | w | 
| 2 | a | n | 
+----+----+----+ 

フィールドf1f2を使用して一意のレコードを決定します。この例では、f1=2 and f2='a'f3znで重複しているレコードです。我々は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文でこれを使用することができます

関連する問題