GROUP BY 與聚合函數 使用注意點


表的設計:

表里面的內容:

 

一:在不使用聚合函數的時候,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子句后再加上那個令命名的名字,否則就和文章剛開始出現的情況一樣


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM