Mysql

計算學生提供不同科目數量的班級的平均值

  • February 20, 2022

我正在嘗試計算學生可以持有不同數量科目的班級的班級平均值(例如:一個班級中有兩個學生,其中一個學習 3 個科目,另一個學習 2 個科目)。如何獲得適用於所有學生的班級平均成績?我已經在表格中列出了他們的總分。我知道計算平均值的公式只是個別學生的總平均值除以學生人數,但我似乎無法讓它發揮作用。誰能幫我寫一個查詢來計算並列印出這個班級的平均值?

這是我到目前為止所嘗試的:

SELECT student_id, SUM(CA_total)/count(term_total) AS average
FROM score_entry
GROUP BY student_id

來自 mysql 數據庫的結果

但我希望最終結果是 25 + 26.5 的總和,即 51.5,然後除以班上的 2 名學生應該得到 25.75。這是班級平均水平。我想要能夠回顯最終答案 25.75 的查詢或程式碼。謝謝 這是精確數據庫的樣本 在此處輸入圖像描述

SUM(..)/count(..)很接近。反而:

SUM(sums) / SUM(counts)

即每個小計(學生?)都有一個總分和一個項目數(科目)的計數

就像 Rick 指出的那樣,您應該提供CREATE TABLEINSERT聲明。也就是說,我猜是這樣的:

SELECT AVG(average)
FROM (
   SELECT student_id, AVG(CA_total)  -- assuming CA_total and term_total are not null
   FROM score_entry
   GROUP BY student_id
) AS T

會做

引用自:https://dba.stackexchange.com/questions/144675