[mySQL] COUNT und DISTINCT kombinieren

Gawan

kennt sich schon aus
COUNT und DISTINCT kombinieren

Hiho zusammen !

Ich hab grad ein kleines Problem. Ich habe eine Tabelle die in etwa so aussieht:

Code:
Typ           Untertyp

RB 1          RBBB1
RB 1          RBBB1
RB 1          RBBB3
RB 1          RBBB9
RB 2          ABBB5
RB 2          ABBB5
RB 3          CDDD4
RB 3          CDDD5
RB 3          CDDD6
RB 4          DAAB4

Ich brauche jetzt eine Abfrage die mir anzeigt wieviele verschiedene Untertypen es von jedem Typen gibt.
Also genau so:

Code:
RB1    3
RB2    1
RB3    3
RB4    1

Ich habe jetzt schon alles mögliche versucht, aber ich bekomme einfach keine gültige Kombination aus COUNT, DISTINCT und GROUP BY zusammen die mir genau dieses Ergebnis liefert.
Kann mir da vielleicht jemand helfen ?

Danke
lG
Gawan
 
Hallo und herzlich willkommen :)
Ich kann leider nicht direkt helfen, aber vielleicht wäre es hilfreich, wenn Du noch posten würdest, welche Befehle Du schon durch hast.
 
das sollte ganz einfach sein:

Code:
SELECT t1.Typ, COUNT( t1.Untertyp ) AS Anzahl
FROM (
SELECT Typ, Untertyp
FROM `DeineTabelle`
GROUP BY Typ, Untertyp
)t1
GROUP BY Typ

habe es auf die schnelle jetzt mit einer subselect aufgebaut.
 
Zuletzt bearbeitet:
Sodala, Problem gelöst !

Mit deiner Lösung Lordas, klappt es zwar mit einer Untergruppe sehr gut, aber ich habe 3 Untergruppen.
Meine finale Lösung sieht jetzt so aus:

Code:
SELECT 
Typ AS AA,
COUNT(DISTINCT Untertyp1) AS BB,
COUNT(DISTINCT Untertyp2) AS CC,
COUNT(DISTINCT Untertyp3) AS DD
FROM table_uno 
GROUP BY Typ;

Das Ergebnis ist eine Tabelle nach dem Schema:

Code:
Typ         AA           BB            CC         DD

Typ1       22            85           212         11
Typ2       25            72            21          37
Typ3       90            11            24          24
Typ4      113           190           76          23

Danke !

lG
Gawan
 
Zuletzt bearbeitet:
yo stimmt, das distinct kann man auch für jedes einzelne feld nutzen, das hatte ich leider nicht mehr im kopf!
 
Oben