Identifizieren wiederholter Felder in der SQL-Abfrage

8

Ich habe eine SQL-Abfrage, die eine Spalte wie folgt zurückgibt:

%Vor%

Es wurde bereits auf eine bestimmte Weise geordnet, und ich möchte eine weitere Abfrage für diese Ergebnismenge durchführen, um die wiederholten Daten wie folgt zu identifizieren:

%Vor%

Es ist wichtig, dass die zweite Gruppe von 1200 als von der ersten getrennt identifiziert wird. Jede Variation von OVER / PARTITION scheint beide Gruppen zusammenfassen zu wollen. Gibt es eine Möglichkeit, die Partition nur auf diese wiederholten Gruppen zu beschränken?

Bearbeiten: Dies ist für Microsoft SQL Server 2012

    
Joe Wilcoxson 03.01.2014, 16:07
quelle

5 Antworten

0

Dies ist meine Lösung, die einen Cursor und eine temporäre Tabelle verwendet, um die Ergebnisse zu speichern.

%Vor%     
XN16 03.01.2014, 16:31
quelle
2

Nicht sicher, dass dies die schnellsten Ergebnisse sein werden ...

%Vor%

Angenommen, die Tabelle "num" hat eine Spalte "num", die Ihre Daten enthält, in der Reihenfolge - natürlich könnte num in eine Ansicht oder ein "mit" für Ihre ursprüngliche Abfrage gemacht werden.

Bitte beachten Sie die folgenden sqlfiddle

    
Joe Love 03.01.2014 16:31
quelle
1

Hier ist eine Möglichkeit, dies ohne CURSOR

zu tun %Vor%     
unlimit 03.01.2014 16:22
quelle
1

Sie können es tun, ohne Cursor zu verwenden, aber es sieht nicht gut aus (zumindest was ich herausgefunden habe). Also 1) Ich nehme an, Sie haben PK-Spalte, die Ihre Hauptwerte bestellt. Dann 2) Ich nehme an, Sie haben eine ID-Spalte, die Sie festlegen möchten.

%Vor%

SQL Geige hier: Ссылка

%Vor%     
peter.petrov 03.01.2014 17:27
quelle
1

SQL 2012 +

Die folgende Lösung benötigt eine Spalte ( ID in diesem Beispiel; sie kann aber auch ein Datum / Uhrzeit einfügen / erstellen), um die INSERT Reihenfolge der foo Werte zu speichern: Außerdem werden zwei Funktionen verwendet, die mit beginnen SQL Server 2012: LAG (um den vorherigen Wert zu erhalten) und SUM OVER ORDER BY (um laufende Summen zu berechnen):

%Vor%

Ausgabe:

%Vor%     
Bogdan Sahlean 03.01.2014 21:26
quelle

Tags und Links