Ich habe meine Daten haben wie folgt:Wie Zeilennummern in Bezug auf einen Wert in einer Gruppe
Pagetype member_id created_at rownum
A 2 date 1
B 2 date 2
C 2 date 3
D 4 date 1
B 4 date 2
R 4 date 3
B 13 date 1
S 13 date 2
B 13 date 3
Und ich möchte eine andere Spalte, um es hinzuzufügen, wie folgt:
Pagetype member_id created_at rownum DesiredRownum
A 2 date 1 -1
B 2 date 2 0
C 2 date 3 1
D 4 date 1 -1
B 4 date 2 0
R 4 date 3 1
B 13 date 1 0
S 13 date 2 1
B 13 date 3 2
Ich möchte diesem DesiredColumn
immer den Wert 0 zuweisen, wenn PageType
für eine gegebene member_id
B ist. Alle Werte von PageType
vor B für beliebige member_id
sollten negative Werte zugewiesen werden, und alle Werte von PageType
nach B für beliebige member_id
sollten steigende positive Werte zugeordnet werden.
Die Abfrage habe ich meine Daten zu bekommen, ist wie folgt:
select pagetype,
member_id,
created_at,
row_number() over(partition by member_id order by created_at)
from table
order by member_id,
created_at
Wie kann ich diese neue Spalte auf meine Daten hinzufügen?
EDIT: Geringfügige Änderung. Die PageType
kann für jeden beliebigen Benutzer wiederholt werden. Zum Beispiel wiederholt sich die PageType
B für member_id
13. In diesem Fall würden wir Werte für das erste Auftreten von B berechnen wollen.
Ich habe nur eine kleine Änderung an der Frage gemacht. – Patthebug
Sie sollten eine andere Frage stellen. –