Einzelnen Beitrag anzeigen

omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Beschränkung bei GROUP BY wird nicht bemängelt

  Alt 20. Jul 2009, 11:46
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;
  Mit Zitat antworten Zitat