Ich versuche, die Vertica-Ranganalysefunktion zu verwenden, um eine Rangspalte zu erstellen, die durch eine Spalte partitioniert ist, aber nur Datensätze in einer Reihe enthält. Zum Beispiel unter der Abfrage die Ausgabe unterhalb der Abfrage erzeugtRANK-Datensätze partitioniert durch eine Spalte in Serie (Vertica SQL)
select when_created, status
from tablea
when_created Status
1/1/2015 ACTIVE
3/1/2015 ACTIVE
4/1/2015 INACTIVE
4/6/2015 INACTIVE
6/7/2015 ACTIVE
10/9/2015 INACTIVE
ich meine Abfrage ändern könnte einen Rang Spalte enthält, die die folgende Ausgabe erzeugen würde
select
when_created, status, rank() OVER (PARTITION BY status order by when_created) as rnk
from tablea
when_created Status rnk
1/1/2015 ACTIVE 1
3/1/2015 ACTIVE 2
4/1/2015 INACTIVE 1
4/6/2015 INACTIVE 2
6/7/2015 ACTIVE 3
10/9/2015 INACTIVE 3
Allerdings ist mein Ziel, über den Rang starten, wenn eine Reihe gebrochen wird, so dass die gewünschte Ausgabe ist:
when_created Status rnk
1/1/2015 ACTIVE 1
3/1/2015 ACTIVE 2
4/1/2015 INACTIVE 1
4/6/2015 INACTIVE 2
6/7/2015 ACTIVE 1
10/9/2015 INACTIVE 1
gibt es eine Möglichkeit, dies mit der RANK-Funktion zu erreichen, oder gibt es eine andere Möglichkeit, es in vertica sQL zu tun?
Danke, Ben
Wow, das ist wirklich schlau! Ich danke dir sehr – mangodreamz