यह वह क्वेरी है जिसे आप क्रियान्वित कर रहे हैं, थोड़ा कम मोटे सिंटैक्स में लिखा गया है।
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;
आप तालिका में क्रॉस जॉइन कर रहे हैं, कुल मिलाकर 36 पंक्तियाँ बना रहे हैं और इसे घटाकर 4 कर रहे हैं, लेकिन क्योंकि कुल संख्या 36 है, इसलिए परिणाम गलत है।
यही कारण है कि आपको कभी भी अंतर्निहित जॉइन का उपयोग नहीं करना चाहिए।
क्वेरी को फिर से लिखें:
SELECT AVG(a.rcount) FROM
(select count(*) as rcount
FROM ressursertiloppgave r
GROUP BY r.ModulID) a
यदि आप व्यक्तिगत पंक्ति गणना और . चाहते हैं नीचे औसत करते हैं:
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