1. 程式人生 > >資料庫之Group by的使用

資料庫之Group by的使用

Group by根據一個或多個列對結果集進行分組,例如聚合函式 (比如 SUM) 常常需要新增 Group by語句用於分組。
注:本文使用的是MySQL資料庫

1、先看個例子
例如這裡有張員工表(person):

這裡寫圖片描述

通過執行下面的語句查詢各個部門工資的總和:
select dept,sum(salary) from person group by dept;

這裡寫圖片描述

小結:
(1)Group by語法可以根據給定資料列的每個成員對查詢結果進行分組,這裡的分組就是將一個“資料集合”劃分成若干個“小塊”,然後對這些“小塊”進行資料處理。最終得到按一個分組彙總的結果表。

(2)SELECT子句後面的欄位一般是聚合函式或者是Group by 後面的。

(3)Group by 一般和sum、max、avg等聚合函式一起使用。

2、再看個Group by子句和HAVING子句聯合使用的例子

例如:我們查詢平均工資大於7000的部門的最高工資:
執行SQL:
select dept,max(salary)
from person
group by dept
having avg(salary)>7000;

這裡寫圖片描述

小結:
一般我們在Group by子句後面增加一個HAVING子句,來獲得滿足條件的分組的返回結果。HAVING可對限定條件進行分組, HAVING子句後可以通過一個或多個用AND和OR作為連線條件。