Kummulierte Summe über eine Aggregat Spalte?

From: Ulrich Goebel <ml(at)fam-goebel(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Kummulierte Summe über eine Aggregat Spalte?
Date: 2015-12-20 15:23:02
Message-ID: 5676C7D6.7030104@fam-goebel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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":

alter | anzahl | summe
15 | 3 | 3
16 | 5 | 8
17 | 2 | 10
18 | 4 | 14

Mein Ansatz war:

select
alter,
count(*) as anzahl,
sum(anzahl) as summe
from t_person
group by alter
order by alter;

Das ergibt aber leider:
FEHLER: Spalte „summe“ existiert nicht

Irgendwie auch klar: "anzahl" ist ja schon Ergebnis einer
Aggregat-Funktion, müsste aber in dem group by Ausdruck vorkommen...

Wie bekomme ich das gewünschte Ergebnis?

Mit Dank für Tips grüßt
Ulrich

--
Ulrich Goebel
Paracelsusstr. 120, 53177 Bonn

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer 2015-12-20 15:27:12 Re: Kummulierte Summe über eine Aggregat Spalte?
Previous Message Ralf Schuchardt 2015-12-12 12:31:56 Re: Wie baue ich ein Browser-Frontend?