# mySQL: Nach Häufigkeit sortieren... ohne abhängige Dubletten



## dingo5 (21. November 2007)

Vielleicht kann mir jemand mit folgendem Problem helfen:

Als Ausgangsbasis habe ich mal Folgende Tabelle:

tier, halter
------------
katze, fritz
katze, fritz 
katze, fritz
hund, alfred
hund, thomas
maus, mike

1. Nun möchte ich die Ausgabe sortiert haben, nach Häufigkeit des Tieres.
2. Dabei sollen allerdings nur Datensätze berücksichtigt werden, wo der Halter nur einmal vorkommt.

Ergebnis müsste also sein:

häufigkeit,tier
2,hund
1,katze
1,maus

Also hund an erster Stelle.

Ohne Kriterium 2 wäre die Abfrage wie folgt:

SELECT tier, halter, COUNT(tier) AS count_tiere FROM tabelle GROUP BY tier ORDER BY count_tiere DESC

Müsste folgendes ergeben:
3,katze
2,hund
1,maus

Wie kann ich die Abfrage nun abändern um Kriterium 2 zu erfüllen?


----------



## ristone (21. November 2007)

Du könntest ein subselect machen oder ein view benutzen.

subselect wäre z.b.

SELECT table_a.tier, COUNT( table_a.tier ) AS count_tiere
FROM (
    SELECT DISTINCT tier, halter
    FROM tabelle
) AS table_a
GROUP BY table_a.tier
ORDER BY count_tiere DESC


----------

