如果一條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)