Ergebnis 1 bis 7 von 7

Thema: Reihenfolge in Spalte speichern

  1. #1
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard Reihenfolge in Spalte speichern

    Hallo

    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.

    final1990|sortierung
    0 |5
    10 |4
    28 |3
    39 |2
    1000 |1

    schonmal vielen dank für die hilfe

    alex

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von alex1982 Beitrag anzeigen
    Hallo

    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.

    final1990|sortierung
    0 |5
    10 |4
    28 |3
    39 |2
    1000 |1

    schonmal vielen dank für die hilfe

    alex
    Hab ich Dich richtig verstanden?

    Code:
    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)
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard

    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...

    woran liegt das???

  4. #4
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von alex1982 Beitrag anzeigen
    woran liegt das???
    Du verwendest nicht die aktuelle PostgreSQL version (8.4).
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  5. #5
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard

    das stimmt ich benutze die
    PostgreSQL 8.3.11
    gibt es eine möglichkeit die abfrage auch in dieser version umzusetzen??

  6. #6
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von alex1982 Beitrag anzeigen
    das stimmt ich benutze die
    PostgreSQL 8.3.11
    gibt es eine möglichkeit die abfrage auch in dieser version umzusetzen??
    Kurze Antwort: Nein.
    Lange Antwort: eine Funktion schreiben.
    schnellster Weg: Update auf 8.4

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  7. #7
    alex1982 ist offline Neuer Benutzer
    Registriert seit
    03.08.2009
    Beiträge
    20

    Standard

    Danke für die Hilfen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum