Ergebnis 1 bis 4 von 4

Thema: sehr grundlegende array frage

  1. #1
    mathrock ist offline Neuer Benutzer
    Registriert seit
    19.08.2011
    Beiträge
    2

    Standard sehr grundlegende array frage

    bin absoluter anfänger was alles rund um arrays betrifft (schicke ich zur sicherheit voraus):

    folgende situation:

    create table table1 (id integer, name varchar);
    create table table2 (id integer, value varchar);

    insert into table1 (id, name) values ('1','foo');
    insert into table2 (id, value) values ('1','bar');
    insert into table2 (id, value) values ('1','baz');

    select name, value from table1 join table2 using (id);
    name | value
    ------+-------
    foo | bar
    foo | baz

    wie formuliere ich eine abfrage, die

    name | value
    ------+-------
    foo | {bar, baz}

    liefert?

    thx, matthias

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

    Standard

    Zitat Zitat von mathrock Beitrag anzeigen
    bin absoluter anfänger was alles rund um arrays betrifft (schicke ich zur sicherheit voraus):

    folgende situation:

    create table table1 (id integer, name varchar);
    create table table2 (id integer, value varchar);

    insert into table1 (id, name) values ('1','foo');
    insert into table2 (id, value) values ('1','bar');
    insert into table2 (id, value) values ('1','baz');

    select name, value from table1 join table2 using (id);
    name | value
    ------+-------
    foo | bar
    foo | baz

    wie formuliere ich eine abfrage, die

    name | value
    ------+-------
    foo | {bar, baz}

    liefert?

    thx, matthias
    Code:
    test=# select name, array_agg(value) from table1 join table2 using (id) group by name;
     name | array_agg
    ------+-----------
     foo  | {bar,baz}
    (1 row)
    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
    mathrock ist offline Neuer Benutzer
    Registriert seit
    19.08.2011
    Beiträge
    2

    Standard

    vielen dank

    nur interessehalber: wie ginge das mit postgres 8.3 OHNE die funktion array_agg() nachzubauen?

    thx
    matthias

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von mathrock Beitrag anzeigen
    vielen dank

    nur interessehalber: wie ginge das mit postgres 8.3 OHNE die funktion array_agg() nachzubauen?

    thx
    matthias
    Es gibt in der Doku ein Beispiel, diese Funktion nachzubauen. Nennt sich etwas anders, funktioniert aber exakt so. Ansonsten wird es wohl nicht gescheit funktionieren.

    (array_accum, PostgreSQL: Documentation: Manuals: PostgreSQL 8.3: User-Defined Aggregates)

    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

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 02.03.2012, 18:33
  2. bytea Performance sehr langsam
    Von ratio im Forum Allgemeines
    Antworten: 14
    Letzter Beitrag: 25.08.2009, 22:43
  3. Insert mit vielen Spalten sehr langsam
    Von donhaaare im Forum SQL
    Antworten: 16
    Letzter Beitrag: 17.01.2009, 19:24
  4. PostgreSQL Array als Perl Array?
    Von zack im Forum Programmierung
    Antworten: 1
    Letzter Beitrag: 13.11.2008, 20:45
  5. Datenbankformat aktualisieren (Sehr Eillig)
    Von el mar im Forum Installation von PostgreSQL
    Antworten: 10
    Letzter Beitrag: 19.09.2007, 23:16

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