你先用SELECT sex,age FROM users GROUP BY 1;查詢。然后在用SELECT sex,age FROM users GROUP BY 1 HAVING age>35;這樣你就懂了。第二個(gè)條件是在第一個(gè)篩選的結(jié)果中再次曬選,而第一的篩選中并沒(méi)有age大于35的數(shù)據(jù),你可以用第一個(gè)查詢的時(shí)候看看那2個(gè)數(shù)據(jù)。然后改掉其中一個(gè)使其age大于35,然后你的第二個(gè)查詢就會(huì)有結(jié)果了。
2017-10-07
回答上面自己的問(wèn)題
如果id(圖內(nèi)為student_id)值有一欄為NULL ,結(jié)果就不一樣了
2017-10-07
SELECT sex FROM tbl_name GROUP BY 1 HAVING count(*)>1;
SELECT sex FROM tbl_name GROUP BY 1 HAVING count(id)>1;
這倆是不是得到的結(jié)果一樣
2017-01-09
如果我having用來(lái)定義的是id的序號(hào)大于等于2的人, 那么having后面應(yīng)該怎么寫
2016-04-27
可是SELECT sex,age FROM users GROUP BY 1 HAVING age>35,不是有一條是大于35的嗎。為什么是empty set
2016-03-25
count()函數(shù)是返回某一列的行數(shù)。在這里count(id)也就是返回已經(jīng)按sex分組之后的三列的每一列的行數(shù)
2015-10-14
一樓的 圖片很清楚就解釋了,having是對(duì)分組后的結(jié)果操作。
所以sex為0的 count(id)值為8 ,而sex為nulll的count(id)值為0,
然后 開始,進(jìn)行 我所示的判斷, count(id)>=2,那就是只有分組后sex為0的8滿足,所以結(jié)果便為sex 的0項(xiàng)
同理,?count(id)>=1,對(duì)于分組后的 sex的兩種情況0和null的count(id)均滿足,則sex的0和null項(xiàng)都查詢到
?count(id)<5 對(duì)于分組后的sex,只有null的count(id)=1,滿足,所以只能查詢出sex的null項(xiàng),我這樣解釋你明白了嗎?
2014-10-23
看看下面的圖片,或許有幫助^^
2014-09-10
這里count()函數(shù)是:統(tǒng)計(jì)個(gè)數(shù); 這里, sex為0的人有8個(gè)人, 8>=2滿足條件, 所以輸出這8個(gè)人的同樣的sex:0, 所以輸出是0; 另外, 有1個(gè)人的sex是NULL, 1個(gè)人不滿足>=2, 所以,不輸出這個(gè)人的sex:NULL, 所以不輸出NULL. 綜上, 輸出結(jié)果只有: 0
2014-09-03
這里我也不懂呀?什么意思?count是對(duì)id計(jì)數(shù),那么大于等于2的記錄就有8條,按照sex分組后應(yīng)該有兩個(gè)呀,因?yàn)閕d=9的用戶sex為空。
2014-07-18
將分組里面人數(shù)大于等于二的分組查找出來(lái)