Count immer nur mit GROUP BY??

Steve6

Aktiver Benutzer
Beiträge
26
Hallo,

Ich komme hier irgendwie nicht weiter.
Gibt es eine Möglichkeit, COUNT ohne GROUP BY zu nutzen? Oder Alternativen?

Folgende (vereinfachte) Situation: Ich habe eine Tabelle mit Namen und Adressen. Ich möchte die Namen zählen aber nicht das Ergebniss gruppieren:

Tabelle:
Max_Mustermann | Hautpstraße 12 | Stadt1 | Wohnung2
Max_Mustermann | Seitenstraße 12 | Stadt1 | Wohnung1
Ulli_Unsichtbar | Eckenwinkel 19 | Stadt1 | Wohnung1
Hans_Hasenfuß | Neue Straße 11 | Stadt 2 | Wohnung1
Ulli_Unsichtbar | Eckenstraße 20 | Stadt 1 | Wohnung1
Sabine_Sauertopf | Neue Straße 11 | Stadt 2 | Wohnung1
Max_Musstermann | Gasse 9a | Stadt 2 | Wohnung1

Ergebnis:
3 | Max_Mustermann | Hautpstraße 12 | Stadt1 | Wohnung2
3 | Max_Mustermann | Seitenstraße 12 | Stadt1 | Wohnung1
2 | Ulli_Unsichtbar | Eckenwinkel 19 | Stadt1 | Wohnung1
1 | Hans_Hasenfuß | Neue Straße 11 | Stadt 2 | Wohnung1
2 | Ulli_Unsichtbar | Eckenstraße 20 | Stadt 1 | Wohnung1
1 | Sabine_Sauertopf | Neue Straße 11 | Stadt 2 | Wohnung1
3 | Max_Musstermann | Gasse 9a | Stadt 2 | Wohnung1

Egal wie ich es mit COUNT anstelle, ich erhalte immer nur die Anzahl 1, da sich die Datensätze nicht gruppieren lassen:

1 | Max_Mustermann | Hautpstraße 12 | Stadt1 | Wohnung2
1 | Max_Mustermann | Seitenstraße 12 | Stadt1 | Wohnung1
1 | Ulli_Unsichtbar | Eckenwinkel 19 | Stadt1 | Wohnung1

Gruß Steve
 
Werbung:
ja, sollte oraggle können, ähnlich wie in PostgreSQL:

Code:
test=*# select c1, c2, c3 from steve6 ;
  c1  |  c2  |  c3  
-------+------+------
 name1 | bla1 | foo1
 name1 | bla1 | foo2
 name2 | bla2 | foo1
 name2 | bla2 | foo2
 name1 | bla1 | foo3
(5 Zeilen)

test=*# select count(1) over (partition by c1) as anzahl, c1, c2, c3 from steve6 ;
 anzahl |  c1  |  c2  |  c3  
--------+-------+------+------
  3 | name1 | bla1 | foo1
  3 | name1 | bla1 | foo2
  3 | name1 | bla1 | foo3
  2 | name2 | bla2 | foo1
  2 | name2 | bla2 | foo2
(5 Zeilen)

Du suchst also das over (...)


Andreas
 
Werbung:
Zurück
Oben