单行函数和聚合函数的区别:
单行函数操作时,根据函数的功能同时处理一行数据,返回每一行的处理结果;
聚合函数同时对分组后的一组行进行操作,返回分组后各组的处理结果;
聚合函数主要是数字处理函数,通常对分组后每组行中每行的列进行操作,返回数值,包括求平均值函数avg(x)、统计个数函数count(x)、求最大值函数max(x)、求最小值函数min(x)、求中间值函数median(x)、求和函数sum(x)、求标准差函数stddev(x)、求方差函数variance(x);
下面对如上函数进行简单举例:
select * from products;
avg()函数:
select avg(pp.price) from products pp;
--统计products表中所有产品的价格平均值;
count()函数:
select count(pp.product_id) from products pp;
--统计products表中所有产品的数量
max()函数:
select max(pp.price) from products pp;
--统计products表中产品价格的最高值
min()函数:
select min(pp.price) from products pp;
--统计products表中产品价格的最低值
median()函数:
统计传入变量中间行的值,有点绕,直接看例子;
select distinct price from products order by price desc;
select median(pp.price) from products pp;
为什么是24呢,因为products表共15行,中间一行是第8行,第8行记录price字段值为24,所以median(x)函数也可以理解为求传入参数x中中间列对应字段的值;
注意:不一定去的是整个表的中间列,后面会讲到where子句,它对表中的列做过滤;
sum()函数:
select sum(pp.product_id) from products pp;
--统计表中product_id列值的总和,products表中product_id列序号从1-15,统计值为120,如下
stddev(x)函数和variance(x)函数使用方法类似,直接调用即可。