代码改变世界

SQL从入门到基础 - 05 数据分组、Having语句

2015-10-28 21:18  夏日里的向阳花  阅读(194)  评论(0编辑  收藏  举报

一、数据分组

  1. 按照年龄进行分组统计各个年龄段的人数:

Select FAge,count(*) from T_Employee group by FAge;

wps38BF.tmp

  2. Group by子句必须放到where语句之后。

  3. 没有出现在group by子句中的列是不能放到select语句后的列名列表中的(聚合函数中除外),即只能出现group by后面的列和聚合函数。

   (1)错误:select FAge,FSalary from T_Employee group by FAge;

   (2)正确:select FAge,avg(FSalary) from T_Employee group by FAge;

      按照年龄分组统计各年龄段的平均月薪

wps38D0.tmp

二、Having语句

  1. 在where中不能使用聚合函数,必须使用Having,Having要位于group by 之后,select FAge,count(*) as 人数 from T_Employee Group by FAge Having count(*)>1

wps38D1.tmp

  2. 注意:Having中不能使用未参数分组的列,Having不能代替where。作用不一样,Having是对组进行过滤,能用的列和select中的列一样,而where是对原始数据的过滤。