色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

by子句和where子句的區別

張吉惟2年前14瀏覽0評論

by子句和where子句的區別?

where篩選是在分組之前篩選,篩選完之后再group by

having是分組之后再篩選,篩選完之前先group by

執行順序:where>sum、count等聚合函數>having

所以where條件里不能有聚合函數,因為where條件在聚合函數之前執行。

若須引入聚合函數來對group by 結果進行過濾 則只能用having。(此處不多說,自己想 是先執行聚合函數還是先過濾 然后比對我上面列出的執行順序 一看便知)

樣例:selectsum(score)fromstudentwheresex='man'groupbynamehavingsum(score)>210

注意事項 :

1、where 后不能跟聚合函數,因為where執行順序大于聚合函數。

2、where 子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。

3、having 子句的作用是篩選滿足條件的組,即在分組之后過濾數據,條件中經常包含聚組函數,使用having 條件顯示特定的組,也可以使用多個分組標準進行分組。