Rouven: sql abfrage auflistung häufigste/wenig häufigste nennungen

Beitrag lesen

Hello,

vermutlich hast du COUNT falsch eingesetzt. COUNT ist, genau wie MAX, MIN, AVG und Konsorten, eine Aggregatfunktion, die sich immer auf eine Gruppe von Datensätzen bezieht. Auf welche, das hängt sehr vom Kontext ab - Beispiel:
SELECT land, COUNT(land)
FROM table
Du führst eine Abfrage aus, die ALLE Länder zurückgibt und sagst zur Datenbank "nun zähle" - das mag dich irritieren, aber du hast ihm nicht gesagt woraus die Gruppe besteht, dementsprechend geht das DBMS davon aus, dass du alle Datensätze als eine Gruppe betrachten möchtest und zählt alle Datensätze. In deinem Fall also 6.
Deutschland|6
Deutschland|6
Deutschland|6
Frankreich|6
Frankreich|6
England|6

Du möchtest etwas anderes, du möchtest 3 Gruppen, nämlich die Gruppe Deutschland, die Gruppe Frankreich und die Gruppe England. Warum ausgerechnet das Gruppen sind wird dir vermutlich im Laufe der Zeit einleuchten, wenn du mit mehr Beispielen in dem Zusammenhang arbeitest. Für den Augenblick reicht es sich zu überlegen, dass du vor dir 3 Eimer stehen hast, in jeden Eimer schmeißt du Datensätze eines Landes und am Ende zählst du wieviel da drin sind.
Deine Abfrage spiegelt genau das wieder
SELECT land, COUNT(land)
FROM tabelle
GROUP BY land -- hier schmeißen wir alles in die Töpfe
Jetzt hat sich der Kontext für das Count geändert - plötzlich besteht eine Gruppe immer aus einem eindeutigen Land und der zugehörigen Zahl von Datensätzen. Dementsprechend wird dein Ergebnis jetzt wie folgt aussehen, beachte dabei insbesondere, dass es nicht mehr 6 Ergebnisse gibt, sondern genau die drei Gruppen (Eimer):
Deutschland|3
Frankreich|2
England|1

MfG
Rouven

--
-------------------
Let Bygones Be Bygones  --  Robert Pitscottie: "Chronicles of Scotland"