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