GROUP BY

Wir müssen die Leute nach gewissen Merkmalen einordnen, weil wir nicht wissen, wer die Terroristen sind.

Ich wette, Daskalov ist -

Lass mich in Ruhe mit deinem Daskalov und hör mir zu!

*hrml

Ich habe dir hier aufgeschrieben, wie das funktioniert. Fuchs dich rein, probier etwas rum, während ich alles vorbereite.

Stell dir vor, du hast eine Liste aller Personen. Und du willst die aufteilen nach Augenfarbe. Dann schreibst du:

SELECT p.nachname, p.augenfarbe
FROM personen p
GROUP BY p.augenfarbe;

Dann kriegst du als Ergebnis für jede Augenfarbe eine Zeile:

Jetzt fragst du dich, warum da bei »blau« oder »braun« nur ein Name steht. Es sind ja viele Leute mit blauen oder braunen Augen. Ganz einfach: In dieser Zelle stehen eigentlich viele Namen. Das kannst du mit GROUP_CONCAT sehen:

SELECT GROUP_CONCAT(p.nachname), p.augenfarbe
FROM personen p
GROUP BY p.augenfarbe;

Das ist natürlich ziemlich abartig, da ja eigentlich in einer Zelle nur ein Wert stehen soll. Vielleicht ist es einfacher, wenn du es mit COUNT(*) probierst, das kennst du ja schon:

SELECT COUNT(*), p.augenfarbe
FROM personen p
GROUP BY p.augenfarbe;

Jetzt hast du also alle Personen nach Augenfarbe getrennt (gruppiert, sozusagen) und gezählt, wie viele Ergebnisse du für die einzelnen Gruppen hast. Und für diese Gruppen kannst du jetzt bspw. alle Aggregatfunktionen anwenden, die du kennst. Wenn du also wissen möchtest, wie viel die einzelnen Gruppen durchschnittlich verdienen, schreibst du

SELECT AVG(p.monatlichesEinkommen), p.augenfarbe
FROM personen p
GROUP BY p.augenfarbe;

Damit orientierst du dich jetzt erst mal. Ich habe hier ein paar Ideen für erste Einordnungen:

Ächz …

  • Wie viele Leute haben welchen Familienstand?
  • Die Anzahl der Leute, die in den einzelnen Straßen wohnen. Am besten mache ich mir da ein Alias für den COUNT-Teil und sortiere nach diesem Alias absteigend.
  • Welche Berufe sind die häufigsten? Da gruppiere ich wohl einfach nach Beruf und sortiere absteigend nach der Anzahl.
  • Da könnte ich ja gleich schauen, was die einzelnen Berufsgruppen durchschnittlich verdienen. Richtig schick wäre, wenn ich das noch so sortiere, dass die Berufsgruppen, die am häufigsten vertreten sind, oben stehen.

Hey, Kowalsky! Das hat geklappt! Ich habe Kapoor die Listen gebracht, jetzt können wir entspannt bei Sülar ein Lahmacun mit -

*BAMM* *BAMM* *BAMM*