group by 子句是将查询结果表按某一列或者多列分组,值相等的为一组。对查询结果的分组是为了细化sum,max之类函数的作用对象。如果未对查询结果分组,这类函数将作用于整个查询结果。
例如:查询EMP表中的每个部门的最高工资是多少?
select max(sal) from scott.emp group by deptno;
在这里,通过group by的参数deptno将所有数据先是分成了若干组,然后再用max函数查出了每组中最大的值,即每个部门的最高工资。
group by可以与where搭配使用,但是where只能在group by 的前面,group by的后面不能使用where,但是可以用having来表示条件。