group by,即以其中一個字段的值來分組
select 的字段只能是分組的字段類別以及使l聚合函數如,max(),min(),count()的字段。
where在前,group by在后,注意group by緊跟在where最后一個限制條件后面,不能被夾在where限制條件之間。
where在前,group by在后的原因:要先用where過濾掉不進行分組的數據,然后在對剩下滿足條件的數據進行分組。
having是在分好組后找出特定的分組,通常是以篩選聚合函數的結果,如sum(a) > 100等,且having必須在group by 后面,
使用了having必須使用group by,但是使用group by 不一定使用having。不允許使用雙重聚合函數,所以在對分組進行篩選的時候
可以用order by 排序,然后用limit也可以找到極值。
如下圖所示,使用having報錯,通過order by 篩選
鳴謝參考:https://www.cnblogs.com/jingfengling/p/5962182.html