有的問答對HAVING COUNT(id)>2的問題解釋的不太全面,說下自己的看法(含測試)
有不少問答說結果和COUNT()括號中的參數無關,其實還是有關系的,該句話先要執行的是SELECT,然后根據HAVING語句選擇符合條件的分組,而條件COUNT()>6表示的是含有該字段(括號中的參數)的有值記錄的個數,如果是NULL則不會計算在內。
因此在測試中通過SELECT分組有age=21,age=23,age=25以及age=10,若執行HAVING COUNT(password)>=6,則這四個分組沒有一個分組達到要求(age=10的分組COUNT(password)返回的是3,因為去掉了NULL)。而若執行HAVING COUNT(id)>=6則age=10的分組符合,因為COUNT(id)返回的是7
不知道理解的對不對,希望大家指正
2020-08-22
肯定是有關的,HAVING?后面就是要跟分組后的條件限定,舉個極端的例子要是COUNT()括號中沒有參數就是條件不全,運行會報錯