"Folgen" mit "Lücken"

"Folgen" mit "Lücken"

am 04.10.2010 20:03:30 von Tim Landscheidt

Hallo,

nicht unbedingt ein Problem mit PostgreSQL, sondern eher
eine Frage des Algorithmus:

Angenommen, ich habe einen Adventskalender mit den Türchen
1 bis 24. Hinter den Türchen 5, 6, 12, 19 und 24 werden "be-
sondere" Pralines versteckt. Die übrigen Füllungen kommen
aus der Grabbelkiste und sollen nach ihrem Brennwert/Preis/
Volumen sortiert werden.

Die einfache (und funktionierende) Lösung ist, die Grab-
belkiste mit einem "ROW_NUMBER() OVER (ORDER BY Brennwert/
Preis/Volumen)" zu ergänzen, eine Folge der "normalen" Tür-
chen:

| tim=3D# SELECT G.A, ROW_NUMBER() OVER (ORDER BY G.A) AS RN
| tim-# FROM generate_series(1, 24) AS G(A)
| tim-# WHERE G.A NOT IN (5, 6, 12, 19, 24)
| tim-# ORDER BY G.A;
| a | rn
| ----+----
| 1 | 1
| 2 | 2
| 3 | 3
| 4 | 4
| 7 | 5
| 8 | 6
| 9 | 7
| 10 | 8
| 11 | 9
| 13 | 10
| 14 | 11
| 15 | 12
| 16 | 13
| 17 | 14
| 18 | 15
| 20 | 16
| 21 | 17
| 22 | 18
| 23 | 19
| (19 Zeilen)

| tim=3D#

zu erzeugen und diese dann in einem INSERT/UPDATE/whatever
zu verheiraten. Meine Frage ist nun, ob man diese "Folge mit
Lücken" auch ohne die komplette Folge erzeugen kann, sprich,
ob es einen Ausdruck gibt, der 3 auf 3, 5 auf 7, 14 auf 17,
etc. abbildet.

Tim


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein