Ich habe eine Frage ganz ähnlich wie How to add sequence number for groups in a SQL query without temp tablesWie Sequenznummer für Gruppen (neue Nummer, wenn gleiche Gruppe wieder auftritt) in einer SQL-Abfrage
die Probe zu nehmen von dort zu schreiben, habe ich eine Datenstruktur, die aus die ersten beiden Spalte dieser Tabelle, und ich mag die dritte Spalte in meiner Anfrage generieren:
Record Group GroupSequence -------|---------|-------------- 1 Chickens 1 2 Chickens 1 3 Horses 2 4 Cows 3 5 Horses 4 6 Horses 4
der Unterschied zu der zitierten Abfrage ist, dass ich eine neue Nummer benötigen, wenn die vorherige Linie nicht über der gleiche Wert in der zweiten Spalte.
Ich habe versucht, eine Zeilennummer und LAG()
zu verwenden, um zu überprüfen, ob die vorherige Zeile den gleichen Wert hatte - wenn ja, nehmen Sie den vorherigen Wert dieser generierten Spalte, wenn nicht, nehmen Sie die Zeilennummer - aber es sieht so aus Sie können die von Ihnen erstellte Spalte nicht erneut verwenden.
Der Wert muss nur eine andere Nummer sein - es spielt keine Rolle, ob es in Ordnung ist. Dies wäre auch in Ordnung sein:
Record Group GroupSequence -------|---------|-------------- 1 Chickens 1 2 Chickens 1 3 Horses 3 4 Cows 4 5 Horses 5 6 Horses 5
warum nicht 2 für Pferde in zweiter Ausgabe? – TheGameiswar
@TheGameiswar Wenn ich 2 oder 3 für 'Pferde' bekomme, ist es mir egal. Es muss nur eine andere Nummer sein, wenn die vorherige Zeile nicht den gleichen Wert hat. Es kommt darauf an, dass die zweite Gruppe von Pferden eine andere Nummer hat als die erste Gruppe. – SimonSimCity
Lesen Sie etwas auf RANK() und DENSE_RANK() Funktionen – PacoDePaco