2019-03-04
閱讀量:
837
Mysql聚合函數(shù)對where語句篩選結(jié)果的影響
select???create_date??FROM?unlimited_user_history?WHERE?1?!=?1;
篩選結(jié)果為0件
但是用了聚合函數(shù)
select????MAX(create_date)??FROM?unlimited_user_history?WHERE?1?!=?1;
即使where條件不滿足,結(jié)果還是有1件;
這個(gè)很正常,第一個(gè)之所以返回0條,是因?yàn)?!=1?是不成立的,所以就沒有結(jié)果集了。
而第2個(gè),也是一樣,where過濾1!=1也是沒有數(shù)據(jù),但是聚合函數(shù)就算在1條記錄也沒有的情況下,也會返回1一個(gè)值,那就是null
SQL中關(guān)于where后面不能放聚合函數(shù)(如sum等)的解決辦法
我們在編寫較為復(fù)雜的SQL語句的時(shí)候,常常會遇到需要將sum()放到where后面作為條件查詢,事實(shí)證明這樣是無法執(zhí)行的,執(zhí)行會報(bào)【此處不允許使用分組函數(shù)】異常。 那么如何解決呢,使用HAVING關(guān)鍵字 示例: select sum(amount) ? from table group by clientId having sum(amount) >100






評論(0)


暫無數(shù)據(jù)
CDA考試動態(tài)
CDA報(bào)考指南
推薦帖子
0條評論
1條評論
0條評論
0條評論