一、数据分组

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

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

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

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;

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

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

二、Having语句

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

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

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

04-23 02:31