Frage

Ich habe eine Tabelle mit den Spalten A, B, C und möchte alle Kombinationen von Datensätzen erhalten, die {B, C} eindeutig haben.Das heißt, sowohl der B-Wert als auch der C-Wert werden nur einmal in einem Satz angezeigt.

Haben Sie Ideen, wie Sie das erreichen können?Ich gehe davon aus, dass die Ausgabe eine Kombination in einer einzelnen Zeile enthalten muss, was kein Problem darstellt.

Um es hier zu verdeutlichen, ist ein Beispiel:

  • 1,1,0
  • 6,1,1
  • 1,1,2
  • 3,2,0
  • 5,2,1
  • 1,2,3

Eine mögliche Kombination ist {1,1,0}, {1,2,3}, während {6,1,1}, {5,2,1} dies nicht ist, da der C-Spaltenwert '1' nicht eindeutig ist.Was ich gerne bekommen würde, ist eine solche Ausgabe:

1,1,0,1,2,3

6,1,1,1,2,3

JETZT wird die Ausgabe n-Tupel mit eindeutigen B, C-Werten sein.

War es hilfreich?

Lösung

Ich denke, du willst eine seltsame Version eines Self Joins:

select t1.*, t2.*
from table t1 join
     table t2
     on t1.b <> t2.b and t1.c <> t2.c;

Dies gibt alle Paare aus der Tabelle zurück, in der die b spalten haben unterschiedliche Werte und die c spalten haben unterschiedliche Werte.

Andere Tipps

Dies ist, wozu Gruppe by ist.Es kombiniert alle Datensätze mit den gleichen Werten in der Gruppe mit der Liste in einer einzigen Zeile.

generasacodicetagpre.

Die Frage ist ein bisschen vage, wenn Sie nur die Werte der B & C-Lösung von @linger verwenden möchten, wenn Sie alle Felder für Datensätze verwenden möchten, die über eine B-, C-Kombination verfügen, die in diesem Datensatz auftritt, aber nirgendwo anders ist

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top