Ich erstelle dynamisch eine Abfrage wie unten, die verschiedene Kombinationen von Regeln durch Linksfügen (beliebig oft) für sich erstellt und Regeln mit einigen der gleichen Attribute als Teil der Joins-Bedingungen vermeidet z.BEntfernen von Duplikaten aus mehreren linken Links
SELECT count(*)
FROM rules AS t1
LEFT JOIN rules AS t2
ON t1.id != t2.id
AND ...
LEFT JOIN rules AS t3
ON t1.id != t2.id AND t1.id != t3.id AND t2.id != t3.id
AND ...
ich derzeit Duplikate am Entfernen von einer Reihe von IDs aus den verknüpften Zeilen Erstellen dann das Sortieren und Gruppieren von ihnen:
SELECT sort(array[t1.id, t2.id, t3.id]) AS ids
...
GROUP BY ids
Ich würde gerne wissen, ob es eine bessere Art und Weise ist Duplikat Entfernen Zeilen zB
t1.ID | t2.ID | t3.ID
---------------------
A | B | C
C | B | A
Sollte
t1.ID | t2.ID | t3.ID
---------------------
A | B | C
Oder
t1.ID | t2.ID | t3.ID
---------------------
C | B | A
Aber nicht beides sein.
EDIT: Ich möchte von einer Permutation von Zeilen zu einer Kombination Zeilen gehen.
Verwendung DISTINCT mit GROUP BY –