Probleme beim Zählen der Datensätze, count

Probleme beim Zählen der Datensätze, count

am 08.11.2007 15:43:19 von Michael Tomala

ich würde gerne in einem Befehl merhere verschiedene Zählungen machen

Aber ich bekomme nur hin das er alles zählt.


select
count( aktiv )AS anzahl_1,
count( aktiv )AS anzahl_0
from


ich würde aber gerne

bei anzahl_1 nur zählen wer aktiv =1
und
bei anzahl_0 nur zählen wer aktiv =0

ist.

Mir ist aber nicht ganz klar wo ich definieren muss, welche Bedingung
auschlaggebend für das zählen ist.



Danke


Michael

Re: Probleme beim Zählender Datensätze,count

am 08.11.2007 15:58:55 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Probleme beim Zählender Datensätze,count

am 08.11.2007 16:59:49 von Siegfried Schmidt

Hallo Andreas,

> Klarer Fall für CASE:

So klar ist der Fall leider nicht, da sich sum() und count() durchaus
unterschiedlich verhalten.


Siegfried
--
http://www.schmidt.ath.cx

Re: Probleme beim Zählen der Datensätze, count

am 08.11.2007 22:32:19 von Alex Peters

Michael Tomala wrote:

> ich würde gerne in einem Befehl merhere verschiedene Zählungen machen
>
> Aber ich bekomme nur hin das er alles zählt.
>
>
> select
> count( aktiv )AS anzahl_1,
> count( aktiv )AS anzahl_0
> from
>
>
> ich würde aber gerne
>
> bei anzahl_1 nur zählen wer aktiv =1
> und
> bei anzahl_0 nur zählen wer aktiv =0
>
> ist.
>
> Mir ist aber nicht ganz klar wo ich definieren muss, welche Bedingung
> auschlaggebend für das zählen ist.
>
>
>
> Danke
>
>
> Michael

Ich würde ggf.

SELECT count(*) , ( SELECT count(*) FROM aktiv WHERE aktiv = 0) FROM
.... WHERE aktiv = 1

Ich würde denken, das es so ungefähr gehen müsste.

Gruß Alex P.

--

Re: Probleme beim Zählen der Datensätze, count

am 08.11.2007 22:55:54 von Claus Reibenstein

Michael Tomala schrieb:

> select
> count( aktiv )AS anzahl_1,
> count( aktiv )AS anzahl_0
> from
>
> ich würde aber gerne
>
> bei anzahl_1 nur zählen wer aktiv =1
> und
> bei anzahl_0 nur zählen wer aktiv =0
>
> ist.

Anderer Ansatz:

SELECT aktiv, count(aktiv) AS anzahl FROM ... GROUP BY aktiv

Dies liefert Dir genau das, was Du möchtest, aber in etwas anderer Form.

Gruß. Claus