ich habe eine tabelle mit mehreren Spalten, eine spalte lassen ich nach der größe sortieren, diese sortierung würde ich gerne durchnummerieren und in einer neuen spalte speichern. Zeilen die in final1990 keinen Wert haben sollen bei der Sortierung keinen wert erhalten.
test=# select * from alex order by a;
a | b
---+---
1 | 3
2 | 5
3 |
4 | 7
5 | 1
6 |
7 | 2
(7 rows)
test=*# select a, b, row_number() over (order by b) from alex where b is not null;
a | b | row_number
---+---+------------
5 | 1 | 1
7 | 2 | 2
1 | 3 | 3
2 | 5 | 4
4 | 7 | 5
(5 rows)
test=*# alter table alex add column sort_order int;
ALTER TABLE
test=*# update alex set sort_order = row_number from (select a, b, row_number() over (order by b) from alex where b is not null) foo where alex.a=foo.a;
UPDATE 5
test=*# select * from alex;
a | b | sort_order
---+---+------------
3 | |
6 | |
5 | 1 | 1
7 | 2 | 2
1 | 3 | 3
2 | 5 | 4
4 | 7 | 5
(7 rows)
Hallo das sieht schon so aus als geht es in die richtige richtung, habe das mal an meine tabellen und spalten angepasst
select n_final1990_1000, row_number() over (order by n_final1990_1000) from lut2_gmi1990 where n_final1990_1000 is not null;
aber ich bekomme für diese zeile eine fehlermeldung
ERROR: syntax error at or near “over”
LINE 1: select n_final1990_1000, row_number() over (order by n_final…