SQL - Sequenzen
-
Hallo Leute,
ich habe ein Problem beim erstellen eines bestimmten SQL-Query.
Ich habe in meiner PostgreSQL Datenbank eine Tabelle, die nach einer bestimmten Spalte (Attribut) sortiert ist, d.h. Zeilen mit gleicher Kennung (Namen) werden in Gruppen untereinander geschrieben.
Nun möchte ich in diese Tabelle eine zusätzliche Spalte (mit ALTER TABLE...) einfügen, welche bezogen auf meine angesprochene Spalte fortlaufende Nummern hat, d.h. also eine Sequenz beinhaltet die solange fortlaufend zählt, bis sich ein andere Name in meiner Ausgangsspalte befindet. Dann soll die Sequenz wieder von vorne zu zählen anfangen....zur Verdeutlichung hier nochmal ein Auszug aus meiner Tabelle, wie ich sie später auch gerne mit Sequenz haben möchte:| recipe | ... | sequenz
-------------------------
| IZUG | ...| 1
| IZUG | | 2
| IZUG | | 3
| IZUG | | 4
| IPOO | | 1
| IPOO | | 2
| HGFF | | 1
| HGFF | | 2
| HGFF | | 3
| UZFR | | 1
| ... | | ...
| ... | | ...Das Prob ist also die Spalte Sequenz wie oben aufgezeigt hinzubekommen, in Abhängigkeit des Namens in der recipe-Spalte...
Ich hoffe jemand hat eine SQL-Lösung für mein Prob...wäre demjenigen echt dankbar.
Liebe Grüß
swerbe
-
ich habe das gerade mal ausprobiert.
wie wäre es so:update <table> set sequenz = (select count(*) from <table> a where <table>.recipe = a.recipe and <table>.oid <= a.oid);
<table> muss natürlich noch ersetzt werden und die spalten sollten schon vorhanden sein. aber das ist wohl klar.
ciao,
jenz