avg() und count()
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
-
Hey,
ich hab ein Problem mit einem SQL-Statement
Es gibt die Tabelle Lehrer und die Tabelle Fächer. Nun möchte ich wissen wie man die Lehrer herausbekommt die Überdurchschnittlich viele Fächer besetzen.
SELECT t.lastname, t.firstname, AVG(COUNT(s.id)) FROM teacher t INNER JOIN subject s ON s.teacher = t.id GROUP BY t.lastname, t.firstname HAVING COUNT(s.id) > AVG(COUNT(s.id))
Nur das funktioniert ja leider nicht. Kann man das mit Subqueries umgehen?
Beitrag zuletzt geändert: 12.10.2010 15:12:09 von myhead -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hey,
Ich habs mal mit Subqueries gemacht:
SELECT teacher, COUNT( * ) AS Anz FROM s GROUP BY s.teacher HAVING Anz > ( SELECT AVG( x.Anzahl ) FROM ( SELECT teacher, COUNT( * ) AS Anzahl FROM s GROUP BY teacher ) AS x )
Das gibt alle Lehrer IDs und die Fächerzahlen aus
Das kann man dann beliebig mit der t Tabelle joinen
ich denke mal, das sollte es tun
Beitrag zuletzt geändert: 13.10.2010 13:52:12 von dsv1854 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage