表的設計:
表里面的內容:
一:在不使用聚合函數的時候,group by 子句中必須包含所有的列,否則會報錯,如下
select name,MON from [測試、] group by name
會報錯:
在子句中加上所有的列的時候
select name,MON from [測試、] group by name,mon
這時候不報錯,執行結果
此時雖然成功執行了,但是可以看出來group by在這里並沒有發揮任何的作用,我們完全可以直接select而不用group by,所以,group by子句要配合聚合函數使用,並且,在配合聚合函數使用的時候,在group by子句中不要加上聚合函數處的列名(加入as了的話)
配合聚合函數使用了的情況:
select SUM(mon),name from [測試、] group by name
結果:
是我們想要的。
再如:
select MAX(ID),name from [測試、] group by name
結果:
也是我們想要的。
但是說如果這樣的話:
select MAX(ID) as id,name from [測試、] group by name,id
得到的結果是:
很明顯這不是我們想要的。
所以這時候在使用聚合函數的地方若是使用了as另外命名,請不要在group by子句后再加上那個令命名的名字,否則就和文章剛開始出現的情況一樣