天天看點

For Group by子句

 今天上課學了SQL語句,然後在SERVER上試驗了幾條語句,發現有個問題。就是當輸入select * from members group by ID 時系統會報錯“選擇清單中的列 'members.name' 無效,因為該列沒有包含在聚合函數或 GROUP BY 子句中。”

    上網查了查原來GROUP BY子句根本不是這麼用的。舉個例子 Select s#,avg(g) from sc group by s# 其中s#是學生的學号,g是學生的成績,這句話的目的是要求每個學生的平均成績。為了達到目的首先要按學号分組group by s#,然後在分好組的基礎之上,對每一個組分别進行求avg(g),即對學号相同的成績求平均值(就是求一個學生的平均分數啦),這樣就求出了每個學生的平均成績。

     也就是說Select 後應該有個聚合函數,或者Select 後的字段應該與group by 後的字段相同(如Select s# from sc group by s#),隻有這樣使用GROUP BY子句才有意義啊。