Was ist jetzt eigentlich dein Problem?
Die äußere GROUP-BY-Klausel sorgt dafür, dass die Gruppe (id, kurzbezeichnung, ort) nur jeweils einmal im Ergebnis auftauchen. Was, wenn die Datenbankstruktur durchdacht ist, überflüssig ist, da sich dort keine Informationen aufblähen können, weil die ID (vermutlich) eindeutig ist.
Da in dieser Gruppe auch die ID der Abteilung enthalten ist, kannst du sie in der Unterabfrage (im SELECT) verwenden. Da in der Unterabfrage auf eine Abteilung eingeschänkt wird ist dort das GROUP-BY überflüssig, es wird immer nur eine Abteilung ausgezählt und da die Unterabfrage in solch einer Verwendung nur einen Wert zurückliefern kann und darf, ist das GROUP-BY völlig überflüssig.
Leichte Reduktion unnötiger Informationen...
SQL-Code:
SELECT id, kurzbezeichnung, ort,
(SELECT COUNT(*)
FROM mitarbeiter
WHERE abteilung_id = abt.Id) AS Anzahl
FROM abteilungen abt
GROUP BY id, kurzbezeichnung, ort;