Großte Gruppe(n) finden
-
Hallo,
Ich habe eine Tabelle "Einwohner" mit den Attributen "Name" und "Wohnort"
Nun ist es so, das es personen gibt, die mehere Wohnorte haben (Zweitwohnung etc.
Wie kann ich ausgeben welche Person (Also den Namen) die Meisten Wohnorte haben?Ich habe so begonnen
SELECT DISTINCT Name
FROM Wohnort
GROUP BY Wohnort
HAVING COUNT (Wohnort) ????????// Jetzt bräuchte ich sowas wie Maximum//
Hat Jemand ne Idee?
-
Korrektur natürlich muß es so heißen:
SELECT DISTINCT Name
FROM Einwohner
GROUP BY Wohnort
HAVING COUNT (Wohnort) ????????// Jetzt bräuchte ich sowas wie Maximum//
Hat Jemand ne Idee?
-
Wenn du das alles in einer Tabelle hast, dann isses nicht so gut, weil du damit eine grundlegende Regel verletzt hast.
Ich weiß etz leider nimmer welche das was - aber so ist dein Datenmodell nicht normiert.Ok, gehen wir mal davon aus, du hast diese Tabellen einwohner, wohnort und einwohner_wohnort, da eine N:M-Beziehung zwischen Einwohner und Wohnort gilt.Es können ja mehrere Leute im gleichen Wohnort wohnen.
einwohner id name wohnort id einwohner_wohnort einwohner_id wohnort_id
select name, count(einwohner_id) from einwohner inner join einwohner_wohnort on einwohner_id = id group by name limit 1
so ähnlich.. Ist jetzt nur aus dem Kopf und ungetestet.
-
SELECT DISTINCT Name, Wohnort
FROM Einwohner
GROUP BY Wohnort
ORDER BY COUNT (Wohnort) DESCDann ist das oberste Tuuppel in deiner Ausgabetabelle die gesuchte Lösung