COUNT summieren

COUNT summieren

am 28.12.2005 12:10:59 von L-Andre

Hallo!

Ich habe folgende beispielhafte Tabelle gegeben:

id name foo
1 Hans a
2 Otto a
3 Hans b
4 Otto b
5 Otto b


SELECT name, foo, COUNT(foo) As count FROM test GROUP BY foo, name
ORDER BY name;

name aktion count
Hans a 1
Hans b 1
Otto a 1
Otto b 2


Nun würde ich die Ergebnistabelle nuch gern mit der Summe aller
count's für jeden Name erweitern.

name aktion count sum
Hans a 1 2
Hans b 1 2
Otto a 1 3
Otto b 2 3

Hier habe ich aber im Moment leider keine Idee wie ich das umsetzen
könnte.


Andr=E9 Laugks

Re: COUNT summieren

am 28.12.2005 16:06:48 von Johannes Vogel

Hi André

André Laugks wrote:
> Ich habe folgende beispielhafte Tabelle gegeben:
> SELECT name, foo, COUNT(foo) As count FROM test GROUP BY foo, name
> ORDER BY name;
> Nun würde ich die Ergebnistabelle nuch gern mit der Summe aller
> count's für jeden Name erweitern.
> Hier habe ich aber im Moment leider keine Idee wie ich das umsetzen
> könnte.

Ich verstehe dich wie folgt: Du möchtest gerne einmal über foo/name
aggregieren, ein andermal aber nur über name.
Falls dies zutreffen sollte, wirst du dies in zwei Queries erledigen müssen.

Du merkst, ich bin am raten, was du möchtest. Vielleicht drückst du dich
nochmals anders aus?

HTH, Johannes

Re: COUNT summieren

am 29.12.2005 00:35:49 von l-andre-ngml

Hallo Johannes!

Johannes Vogel schrieb am 28.12.2005 16:06:
> Ich verstehe dich wie folgt: Du möchtest gerne einmal über foo/name
> aggregieren, ein andermal aber nur über name.
> Falls dies zutreffen sollte, wirst du dies in zwei Queries erledigen
> müssen.

// Das ist mein Wusch! :-)
name aktion count sum
Hans a 1 2
Hans b 1 2
Otto a 1 3
Otto b 2 3

So hätte ich noch schön einfach nach der Summe sortieren
können...

Im "Frontend" soll es so aussehen:
Hans
a 1
b 1
gesamt 2

Otto
a 1
b 2
gesamt 3



Ich werde es wohl mit zwei Querys erledigen müssen.

Das Ergebnis ohne die Summierung schreibe ich eine temporäre
Tabelle:
name aktion count
Hans a 1
Hans b 1
Otto a 1
Otto b 2

Dann lege ich ein SUM() drüber:
name count
Hans 2
Otto 3

Dann muß ich noch beider in der Anwendung zusammen führen.


André Laugks

Re: COUNT summieren

am 29.12.2005 00:41:54 von l-andre-ngml

Hallo Johannes!

Johannes Vogel schrieb am 28.12.2005 16:06:
> Ich verstehe dich wie folgt: Du möchtest gerne einmal über foo/name
aggregieren, ein andermal aber nur über name.
> Falls dies zutreffen sollte, wirst du dies in zwei Queries
erledigen müssen.


// Das ist mein Wusch! :-)
name aktion count sum
Hans a 1 2
Hans b 1 2
Otto a 1 3
Otto b 2 3

So hätte ich noch schön einfach nach der Summe sortieren
können...

Im "Frontend" soll es so aussehen:
Hans
a 1
b 1
gesamt 2

Otto
a 1
b 2
gesamt 3



Ich werde es wohl mit zwei Querys erledigen müssen.

Das Ergebnis ohne die Summierung schreibe ich eine temporäre
Tabelle:
name aktion count
Hans a 1
Hans b 1
Otto a 1
Otto b 2

Dann lege ich ein SUM() drüber:
name count
Hans 2
Otto 3

Dann muß ich noch beide in der Anwendung zusammen führen und
gegebenfalls sortieren.


André Laugks

Re: COUNT summieren

am 29.12.2005 01:04:54 von Sven Paulus

Johannes Vogel wrote:
> Ich verstehe dich wie folgt: Du möchtest gerne einmal über foo/name=20
> aggregieren, ein andermal aber nur über name.
> Falls dies zutreffen sollte, wirst du dies in zwei Queries erledigen mü=
ssen.

Noe, war doch gerade erst letzte Woche hier das Thema: Ab MySQL 4.1
gibt es dafuer die Ergaenzung "WITH ROLLUP" zum "GROUP BY".

http://dev.mysql.com/doc/refman/4.1/en/group-by-modifiers.ht ml

Re: COUNT summieren

am 29.12.2005 08:52:16 von Martin Murr

hallo andré,

ab version 5 funktioniert folgender script:

select t1.name, t1.foo, count(t1.foo), t2.count
from test as t1, (select name, count(name) as count from test group by name)
t2
where t1.name = t2.name
group by t1.name, t1.foo;

ergebnis:
+------+------+---------------+-------+
| name | foo | count(t1.foo) | count |
+------+------+---------------+-------+
| Hans | a | 1 | 2 |
| Hans | b | 1 | 2 |
| Otto | a | 1 | 3 |
| Otto | b | 2 | 3 |
+------+------+---------------+-------+

mfg, martin


"André Laugks" schrieb im Newsbeitrag
news:1135768259.037032.190420@g49g2000cwa.googlegroups.com.. .
Hallo!

Ich habe folgende beispielhafte Tabelle gegeben:

id name foo
1 Hans a
2 Otto a
3 Hans b
4 Otto b
5 Otto b


SELECT name, foo, COUNT(foo) As count FROM test GROUP BY foo, name
ORDER BY name;

name aktion count
Hans a 1
Hans b 1
Otto a 1
Otto b 2


Nun würde ich die Ergebnistabelle nuch gern mit der Summe aller
count's für jeden Name erweitern.

name aktion count sum
Hans a 1 2
Hans b 1 2
Otto a 1 3
Otto b 2 3

Hier habe ich aber im Moment leider keine Idee wie ich das umsetzen
könnte.


André Laugks