資料庫sql語句多表連線查詢+group by分組的使用
阿新 • • 發佈:2018-11-07
參考自:https://blog.csdn.net/fly_fly_fly_pig/article/details/81325116
平時用sql查詢經常遇到的問題,這次搜到了一個博主的文章,解決了問題。但是其中的深層原因還沒有想清楚,本文需要完善。
更正前
CREATE VIEW V_AVG_S_G AS SELECT student.stname ,COUNT(*) AS '選課門數',AVG(score.grade) AS '平均分' FROM score,student WHERE score.stno = student.stno GROUP BY score.stno 報錯:訊息 8120,級別 16,狀態 1,過程 V_AVG_S_G,行 3 [批起始行 0] 選擇列表中的列 'student.stname' 無效,因為該列沒有包含在聚合函式或 GROUP BY 子句中。
更正後
CREATE VIEW V_AVG_S_G
AS
SELECT MAX(student.stname) AS '學生名',COUNT(*) AS '選課門數',AVG(score.grade) AS '平均分'
FROM score,student
WHERE score.stno = student.stno
GROUP BY score.stno
那個MAX聚合函式,也可以用MIN函式