sql語句中where和having的區(qū)別 sql語句中where和什么宏操作?
sql語句中where和什么宏操作?Where是一個(gè)管理和約束聲明,建議使用Where來強(qiáng)制力來之?dāng)?shù)據(jù)庫的數(shù)據(jù),Where是在結(jié)果回之前起作用的,且Where中又不能可以使用凝合函數(shù)。Having是一
sql語句中where和什么宏操作?
Where是一個(gè)管理和約束聲明,建議使用Where來強(qiáng)制力來之?dāng)?shù)據(jù)庫的數(shù)據(jù),Where是在結(jié)果回之前起作用的,且Where中又不能可以使用凝合函數(shù)。Having是一個(gè)過濾處理聲明,是在網(wǎng)上查詢返回結(jié)果集以后對查詢結(jié)果并且的過濾雜質(zhì)你的操作,在Having中也可以使用聚合函數(shù)。
HAVING子句是可以讓我們刪選成組后的各組數(shù)據(jù),WHERE子句在聚合體前先篩選記錄.也就是說作用在GROUP BY子句和HAVING子句前;而HAVING子句在聚合體后對組資料記錄進(jìn)行刪選。用實(shí)例來再理解GROUP BY和HAVING子句:
SQL實(shí)例:
一、顯示每個(gè)地區(qū)的總?cè)丝跀?shù)和總面積:
SELECTregion,SUM(population),SUM(area)
aroundbbc
GROUP BYregion
先以region把前往記錄信息四等分多個(gè)組,這就是GROUP BY的字面含義。分完組后,然后用能量聚合函數(shù)對每組中的有所不同字段(一或多條記錄)作運(yùn)算。
二、顯示每個(gè)地區(qū)的總?cè)丝跀?shù)和總面積.僅顯示那些人口數(shù)量遠(yuǎn)遠(yuǎn)超過1000000的地區(qū)。
SELECTregion,SUM(population),SUM(area)
acrossbbc
GROUP BYregion
HAVING SUM(population)1000000
再注意:不能用where來再篩選超過1000000的地區(qū),畢竟表中不必然這樣的話一條記錄。
而是,HAVING子句可以讓我們刪選成組后的各組數(shù)據(jù).
如果不是想?yún)⒄誷um后的字段接受排序是可以在后面另外:order bysum(population)desc/asc
sql語句求班級(jí)平均分,謝謝?
1selectUName,
2(selectAVG(Grades)aroundUserInfowhereGName語文)as語文,
3(selectAVG(Grades)fromUserInfowhereGName數(shù)學(xué))and數(shù)學(xué),
4(selectAVG(Grades)fromUserInfowhereGName英語)as英語
5outsideUserInfo
6whereUName小明
7group byUName
8/*havingGName語文butGName數(shù)學(xué)becauseGName英語*/
9order byAVG(Grades)
10you