having和where的區別
來(lái)源:高三網(wǎng) 2021-11-30 10:43:59
where不能使用聚合函數,having中可以使用聚合函數。where子句在聚合前先篩選記錄,也就是說(shuō)作用在group by子句和having子句前,而having子句在聚合后對組記錄進(jìn)行篩選。
1、where和having的區別
where子句的作用是在對查詢(xún)結果進(jìn)行分組前,將不符合where條件的行去掉,即在分組之前過(guò)濾數據,條件中不能包含聚組函數,使用where條件顯示特定的行。
having子句的作用是篩選滿(mǎn)足條件的組,即在分組之后過(guò)濾數據,條件中經(jīng)常包含聚組函數,使用having條件顯示特定的組,也可以使用多個(gè)分組標準進(jìn)行分組。
where:
where是一個(gè)約束聲明,使用where來(lái)約束來(lái)自數據庫的數據;
where是在結果返回之前起作用的;
where中不能使用聚合函數。
having:
having是一個(gè)過(guò)濾聲明;
在查詢(xún)返回結果集以后,對查詢(xún)結果進(jìn)行的過(guò)濾操作;
在having中可以使用聚合函數。
where和having的執行順序:where早于group by早于having。
相關(guān)推薦:
最新高考資訊、高考政策、考前準備、志愿填報、錄取分數線(xiàn)等
高考時(shí)間線(xiàn)的全部重要節點(diǎn)
盡在"高考網(wǎng)"微信公眾號