Anzahl verschiedener Werte gleichzeitig zählen
Christian
- datenbank
Hi,
ich habe folgendes Problem bei einer MySQL-DB:
In einem Feld wird ein Ländercode gespeichert: country = (de, it, sk, dk, ...).
Ein weiteres Feld nimmt einen von genau zwei Werten an: typ = (1, 2)
Nun will ich für jedes Land separat wissen, wie oft typ=1 und wie oft typ=2 ist. Es soll also so etwas rauskommen:
country | count(typ=1) | count(typ=2)
-------------------------------------
de | 5 | 7
sk | 2 | 9
it | 5 | 0
Aber wie bekommt man sowas hin?
Mit "GROUP BY country, typ;" gibts für jedes Land 2 Zeilen. Im MySQL-Manual finde ich leider nichts passendes. So etwas wie "SELECT COUNT(typ=1) GROUP BY country" funktioniert auch nicht.
Geht sowas überhaupt, und wenn ja wie?
Danke schonmal
Christian
hi,
Nun will ich für jedes Land separat wissen, wie oft typ=1 und wie oft typ=2 ist.
Gruppieren nach country, und dann mit SUM und IF zählen:
SELECT country, SUM( IF(typ=1, 1, 0) ) AS haeufigkeittyp1, SUM( IF(typ=2, 1, 0) ) AS haeufigkeittyp2 FROM tabelle GROUP BY country
Lesen als:
Wenn typ=1 ist, dann addiere auf haeufigkeittyp1 1 drauf, sonst 0 - und für typ=2 analog.
gruß,
wahsaga
Hi wahsaga,
Gruppieren nach country, und dann mit SUM und IF zählen:
SELECT country, SUM( IF(typ=1, 1, 0) ) AS haeufigkeittyp1, SUM( IF(typ=2, 1, 0) ) AS haeufigkeittyp2 FROM tabelle GROUP BY country
Lesen als:
Wenn typ=1 ist, dann addiere auf haeufigkeittyp1 1 drauf, sonst 0 - und für typ=2 analog.
danke dafür! funktioniert perfekt, wieder was gelernt :)
gruß
christian