Sie QUALIFY
Anweisung verwenden können, um Duplikate zu identifizieren und Ausgang:
Da Sie Ihren Tisch nicht teilen ... Sehen Sie dann die folgende Tabelle ABC
:
+----+----+----+
| f1 | f2 | f3 |
+----+----+----+
| 1 | a | x |
| 1 | b | y |
| 2 | a | z |
| 2 | b | w |
| 2 | a | n |
+----+----+----+
Wenn ein eindeutiger Datensatz mithilfe der Felder f1
und f2
ermittelt wird. In diesem Beispiel ist der Datensatz f1=2 and f2='a'
ein Duplikat mit f3
Werten z
und n
. Zur Ausgabe diese verwenden wir qualify
:
SELECT *
FROM ABC
QUALIFY COUNT(*) OVER (PARTITION BY f1, f2) > 1;
QUALIFY
Fensterfunktionen verwendet, um zu bestimmen, welche in dem ausgegebenen Datensatz enthalten aufzeichnet. Hier verwenden wir die Fensterfunktion COUNT(*)
Partitionierung durch unseren einzigartigen zusammengesetzten Schlüssel f1, f2
. Wir behalten nur Datensätze, bei denen die Count(*)
über dieser Partition größer als 1
ist.
erhalten Sie folgende Ausgabe:
+----+----+----+
| f1 | f2 | f3 |
+----+----+----+
| 2 | a | z |
| 2 | a | n |
+----+----+----+
Sie können dies in einer wie CREATE TABLE
Anweisung:
CREATE TABLE ABC_DUPE AS
(
SELECT *
FROM ABC
QUALIFY COUNT(*) OVER (PARTITION BY f1, f2) > 1
) PRIMARY INDEX (f1, f2);