"Folgen" mit "Lücken"

From: Tim Landscheidt <tim(at)tim-landscheidt(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: "Folgen" mit "Lücken"
Date: 2010-10-04 18:03:30
Message-ID: m3lj6du971.fsf@passepartout.tim-landscheidt.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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=# 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=#

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

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas 'ads' Scherbaum 2010-10-04 23:01:17 == Wöchentlicher PostgreSQL Newsletter - 03. Oktober 2010 ==
Previous Message Andreas 'ads' Scherbaum 2010-09-27 12:07:54 == Wöchentlicher PostgreSQL Newsletter - 26. September 2010 ==