1、分组的概念

分组 就按照一定的标准 把数据分成若干部分

2、语法格式

select  字段       
     from  表名 
             where  条件  
                     group  by  分组标准    having   组函数的过滤条件
                             order  by  排序标准 排序方式;

3、

举例
按照部门编号分组  统计部门的人数 
select dept_id,count(id)     
       from  s_emp   
              group by dept_id;
------------------------------------------------------------------------------------------
    显示人数大于2 的部门
    select dept_id,count(id)     
           from  s_emp   
                  group by dept_id   having  count(id) > 2; 
------------------------------------------------------------------------------------------

4、

按照部门编号分组 统计每个部门的平均工资  显示平均工资大于1400 的部门
    select dept_id,avg(salary)     
           from  s_emp   
                  group by dept_id   having  avg(salary) > 1400;   

5、sql语句的执行顺序

from     where     group  by   having   select   order by 

6、按照部门编号分组 统计每个部门的工资和 显示工资和大于3000的部门

select dept_id,sum(salary) 
   from s_emp   
           group by dept_id having sum(salary) > 3000;

7、在 6 的基础上 显示每个部门的名字

     select dept_id,sum(salary),max(name)
             from s_emp,s_dept where dept_id = s_dept.id  
                     group by  dept_id   having  sum(salary) > 3000;
------------------------------------------------------------------------------------------
结论:在分组语句中  select 后的字段要么是分组标准  要么是经过合适的组函数处理过的 

8、

按照地区编号分组  统计每个地区中部门个数  并显示地区名
      select  region_id,count(d.id),max(r.name)  name
            from s_dept  d, s_region r
                    where d.region_id = r.id 
                            group by  region_id;