Re: Ku mmulierte Summe über eine Aggregat Spalte?
Andreas Kretschmer <[email protected]> Sun, 20 Dec 2015 16:27:12 +0100
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <20151220152712.GA10226@tux> |
Ulrich Goebel <[email protected]> wrote: > Hallo, > > ich habe eine Tabelle von Personen und möchte eine Statistik über die > Alterstruktur haben, etwa > > select > alter, > count(*) as anzahl > from t_person > group by alter > order by alter; > > Das ergibt z.B. > > alter | anzahl > 15 | 3 > 16 | 5 > 17 | 2 > 18 | 4 > > Zusätzlich möchte ich eine Spalte, die mir angibt, wieviele Personen bis > zu dem jeweiligen Alter dabei sind. Das ist die Aufsummierung der Spalte > "anzahl": Dafür gibt es Window-Funktionen: test=*# select * from foo; a | b ----+--- 15 | 3 16 | 5 17 | 2 18 | 4 (4 rows) test=*# select *, sum(b) over (order by a) from foo; a | b | sum ----+---+----- 15 | 3 | 3 16 | 5 | 8 17 | 2 | 10 18 | 4 | 14 (4 rows) Andreas -- Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect. (Linus Torvalds) "If I was god, I would recompile penguin with --enable-fly." (unknown) Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889° -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein