kostenloser Webspace werbefrei: lima-city


avg() und count()

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!