Det här är frågan du kör, skriven i en något mindre trubbig syntax.
SELECT
avg(a.ress) as GjSnitt
, modulID
FROM
(SELECT COUNT(ressursID) as ress
FROM ressursertiloppgave
GROUP BY modulID) as a
CROSS JOIN ressursertiloppgave r <--- Cross join are very very rare!
GROUP BY modulID;
Du korsansluter tabellen, gör (6x6=) 36 rader totalt och kondenserar ner detta till 4, men eftersom det totala antalet är 36 blir resultatet fel.
Det är därför du aldrig ska använda implicita kopplingar.
Skriv om frågan till:
SELECT AVG(a.rcount) FROM
(select count(*) as rcount
FROM ressursertiloppgave r
GROUP BY r.ModulID) a
Om du vill ha individuella radantal och genomsnittet i botten gör:
SELECT r1.ModulID, count(*) as rcount
FROM ressursertiloppgave r1
GROUP BY r1.ModulID
UNION ALL
SELECT 'avg = ', AVG(a.rcount) FROM
(select count(*) as rcount
FROM ressursertiloppgave r2
GROUP BY r2.ModulID) a