Ich habe die folgende Datentabelle namens "Tier" und ich möchte Rank und gruppieren nach Klon-Version basierend auf Tier.Ranking von Gruppierung in SQL
Ich habe versucht, den folgenden Code zu verwenden, aber es fehlt die Gruppierung Aspekt, die ich suche. So kommt es zurück.
select
x.animal
, x.clone_version
, row_number() over(partition by x.clone_version order by animal desc)
from animal x
Dies ist, was der obige Code zurückgibt.
Animal Clone_Version RankGroup
dog 0 2
dog 0 1
dog 1 1
dog 2 2
dog 2 1
Ich möchte diese durch Gruppierung, so die Ausgabe wäre die folgenden.
Animal Clone_Version RankGroup
dog 0 3
dog 0 3
dog 1 2
dog 2 1
dog 2 1
Muss ich eine select-Anweisung in der FROM-Klausel verwenden, oder gibt es eine Möglichkeit, die row_number() over(partition by....order by...)
erlauben die Gruppierung neu konfigurieren?
Dank !!! Lief wie am Schnürchen. Wenn Sie eine Chance bekommen, können Sie erklären, wie der Teil "- clone_version + 1" funktioniert? Ich sehe, dass es funktioniert, aber ich kämpfe darum, warum es funktioniert. – AlmostThere
@AlmostThere: Der 'MAX' gibt die höchste' clone_version' für jedes 'Tier' zurück. Dann subtrahieren Sie die aktuelle 'clone_version' und fügen eins hinzu, um mit' 1' anstelle von '0' zu beginnen. – dnoeth
Ich habe ein wichtiges Datenelement vergessen und mein OP umformuliert. – AlmostThere