內容/問題描述:
108 年 - 高雄市高中教師聯招甄選-資料處理科 考試題目
有兩個資料表
STUDENT(SID,NAME,SEX,AGE,HEIGHT)
SCORE(SID,CHI,ENG,MATH)
題目要求列出資料欄位 SID、NAME、AVG 及其欄位紀錄,
篩選條件:平均成績(AVG)為國文(CHI)、英文(ENG)、數學(MATH)
三科成績的平均數值(需使用 AVG 函數),平均成績(AVG)數值應大 於 70 分。
小弟我一開始沒看清楚題目有要求用AVG函數
SELECT STUDENT.SID,
STUDENT.NAME,
(SCORE.CHI+SCORE.ENG+SCORE.MATH)/3 AS AVG
FROM STUDENT,SCORE
WHERE STUDENT.SID = SCORE.SID
AND (SCORE.CHI+SCORE.ENG+SCORE.MATH)/3 > 70 ;
看清楚題目要求後,不知道該怎麼用AVG函數來寫
SELECT STUDENT.SID,
STUDENT.NAME,
AVG(SCORE.CHI+SCORE.ENG+SCORE.MATH) AS AVG
FROM STUDENT,SCORE
WHERE STUDENT.SID = SCORE.SID
GROUP BY STUDENT.SID, STUDENT.NAME
HAVING AVG(SCORE.CHI+SCORE.ENG+SCORE.MATH) > 70 ;
這樣寫出來的結果是該學生的三科成績相加...
請各位高手指導
感恩感謝
2020.10.01 更新
SELECT A.SID,ST.NAME,AVG(A.SS) AS 'AVG'
FROM (
SELECT SID,CHI AS SS FROM SCORE
UNION
SELECT SID,ENG AS SS FROM SCORE
UNION
SELECT SID,MATH AS SS FROM SCORE ) AS A , STUDENT AS ST
WHERE A.SID=ST.SID
GROUP BY A.SID,ST.NAME
HAVING AVG(A.SS)>70
;