mysql group by 和 having 使用注意事項

 如果一條sql使用了 group by 那麼 select  後面可以顯示的字段可以有
          1 group by 的字段(多個)
          2 聚合函數, 函數體中字段任意,只要是表中的字段就行,不需要非得是group by 後面的字段
如果需要對分組後的每一組數據做細化的篩選,那麼可以在group by 後面接having() 函數,having函數體多爲聚合函數 。
   特別需要注意的是,group by 分組後,只能顯示合法數據,一般都是每一組中的其中一條,違反這個規則, 一定會報語法錯誤。

舉例如下:

現在要查詢同一個 task_code下的最大的event_id數據,sql如下

select task_code,max(event_id) from ad_task_event   GROUP BY task_code

要查詢同一個 task_code下的最大的event_id,並且要event_id>12的數據,只是having() 就要出場了

select task_code,max(event_id) from ad_task_event   GROUP BY task_code having(max(event_id)>12)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章