mysql 中 count(1) 和 group by 聯用會出現沒有返回數據的情況

一般在select count(1) ** 的時候會有返回數據,即使沒有數據也會返回一個0。如下:
先看錶數據:
SELECT id FROM test_qhl;
這裏寫圖片描述
使用group by id 分組後,在求count(1) 的值
這裏寫圖片描述
這樣自然會有正確的結果,但是如果確定 id 的值,比如where id = 10 那麼返回的結果集中什麼也沒有,如下:這裏寫圖片描述

一開始對這個結果很疑惑,覺得沒有數據,那麼 count(1) 的結果應該是個0 啊,但是實際卻是個空。我很疑惑。類比實驗得知,將count(1) 換成max(id) 等聚合函數,返回值也是個空。
通過對max(id)的現象,更好理解爲什麼什麼也沒有返回。我的理解是如果使用where id = 10 後,並沒有找出數據來,再去group by id 也是空的。根本沒有數據,對一個空的數據集執行max() 的操作,那也是空的,如果返回一個0 ,那麼顯然也是沒什麼根據! 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章